Установка изображения NSBrowserCell с помощью привязок?

У меня есть NSBrowser, подключенный к NSTreeController, привязанному к массиву объектов NSTreeNode. Достаточно просто заставить текстовую часть работать, установив привязки Content и Content Value для правильной ссылки на контроллер дерева, но как установить изображение для каждой ячейки с помощью привязок?


person Lawrence Johnston    schedule 08.12.2008    source источник


Ответы (2)


Нет встроенного механизма для отображения изображения в ячейке браузера с использованием только привязок. Вы можете настроить такую ​​систему, если действительно хотите, но по моему опыту, иногда это больше проблем, чем того, чтобы прыгать через обручи только для того, чтобы вы могли сказать, что все ваши вещи используют привязки, и просто проще делать что-то по старинке.

«Традиционный» метод размещения изображения в ячейке браузера заключается в реализации метода делегата браузера:

- (void)browser:(NSBrowser *)sender willDisplayCell:(id)cell atRow:(NSInteger)row column:(NSInteger)column

Это позволяет вам настроить ячейку так, как вы хотите, прежде чем она будет нарисована браузером. Взгляните на пример SimpleBrowser в /Developer/Examples/AppKit, и вы найдете там пример того, как использовать этот метод делегата. Однако вам не нужна пользовательская ячейка, которую они используют в этом проекте - проект восходит к предыдущим 10,2 дням, до того, как NSBrowserCell предоставил свой собственный механизм рисования изображений.

person Brian Webster    schedule 08.12.2008

К сожалению, вы не можете легко сделать это с помощью NSBrowserCell. Используйте другую ячейку для столбцов вашего браузера, которая принимает значение объекта, переданное ей в -setObjectValue:, и соответствующим образом заполняет свой собственный текст и изображение.

person Ben Stiglitz    schedule 08.12.2008