Что бы вы сделали вместо использования NSViewController для совместимости с 10.4? - PullRequest
1 голос
/ 22 октября 2009

Все, что мне нужно сделать, это загрузить и поменять местами некоторые перья в NSView окна. Я знаю, как это сделать с помощью NSViewController, и он прекрасно работает с 10.5-10.6, но я не знаю, что делать с 10.4.

Ссылки на учебники очень приветствуются, у меня проблемы с поиском устаревших вещей.

(Да, мне действительно нужно поддерживать 10.4.)

Ответы [ 3 ]

3 голосов
/ 22 октября 2009

Работая с NSViewController в Leopard, я могу сказать вам, что его функциональность очень проста, и что вы должны быть в состоянии воспроизвести его с минимальными усилиями.

По сути, он имеет свойство view / выход и метод initWithNibName:bundle:. Кроме того, это не делает ничего особенно причудливого. В нем есть несколько удобных вещей, таких как принятие NSEditor и свойство representedObject. Вы должны быть в состоянии вызвать эквивалентный класс через час или два.

Теперь, от чего вы откажетесь, это совместимость с более поздними версиями Какао. В конце концов, вы, вероятно, откажетесь от поддержки 10.4, и у вас останется класс и реальный NSViewController. Когда это произойдет, я бы порекомендовал заново настроить ваш собственный контроллер представления на NSViewController Cocoa. Если вы назвали свойства с теми же именами / типами данных, что и NSViewController, вам нужно всего лишь удалить свойства и методы, которые вы объявили сами.

2 голосов
/ 22 октября 2009

Используйте NSBundle для загрузки пера:

YourController *controller = [[YourController alloc] init];
BOOL success = [NSBundle loadNibNamed:@"YourNibName" owner:controller];
1 голос
/ 22 октября 2009

По сути, вы пишете свой собственный класс контроллера, который выполняет те же действия, что и NSViewController. Классы контроллера были добавлены в AppKit, потому что многие из нас писали один и тот же код снова и снова.

...