У меня есть NSBrowser, подключенный к NSTreeController, привязанному к массиву объектов NSTreeNode. Достаточно просто заставить текстовую часть работать, установив привязки Content и Content Value для правильной ссылки на контроллер дерева, но как установить изображение для каждой ячейки с помощью привязок?
Установка изображения NSBrowserCell с помощью привязок?
Ответы (2)
Нет встроенного механизма для отображения изображения в ячейке браузера с использованием только привязок. Вы можете настроить такую систему, если действительно хотите, но по моему опыту, иногда это больше проблем, чем того, чтобы прыгать через обручи только для того, чтобы вы могли сказать, что все ваши вещи используют привязки, и просто проще делать что-то по старинке.
«Традиционный» метод размещения изображения в ячейке браузера заключается в реализации метода делегата браузера:
- (void)browser:(NSBrowser *)sender willDisplayCell:(id)cell atRow:(NSInteger)row column:(NSInteger)column
Это позволяет вам настроить ячейку так, как вы хотите, прежде чем она будет нарисована браузером. Взгляните на пример SimpleBrowser в /Developer/Examples/AppKit, и вы найдете там пример того, как использовать этот метод делегата. Однако вам не нужна пользовательская ячейка, которую они используют в этом проекте - проект восходит к предыдущим 10,2 дням, до того, как NSBrowserCell предоставил свой собственный механизм рисования изображений.
К сожалению, вы не можете легко сделать это с помощью NSBrowserCell. Используйте другую ячейку для столбцов вашего браузера, которая принимает значение объекта, переданное ей в -setObjectValue:, и соответствующим образом заполняет свой собственный текст и изображение.