Установка изображения NSBrowserCell с использованием привязок? - PullRequest
2 голосов
/ 08 декабря 2008

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

Ответы [ 2 ]

2 голосов
/ 08 декабря 2008

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

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

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

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

2 голосов
/ 08 декабря 2008

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

...