Что бы вы сделали вместо использования NSViewController для обеспечения совместимости с 10.4?

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

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

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


person zekel    schedule 21.10.2009    source источник
comment
(Да, мне действительно нужна поддержка 10.4.)… Вы уверены? Действительно? Статистика неоднократно доказывала, что потребители, которые не обновляют свою ОС, не обновляют эфир своего приложения. Единственное заметное исключение - К-12.   -  person geowar    schedule 23.10.2009
comment
Я действительно уверен. В этом выпуске мы наконец-то отказались от версии 10.3 (!). В следующем выпуске мы выпустим 10.4. (Мое приложение является дополнительным к основному.) Главное приложение необходимо обновлять каждые четыре месяца, иначе оно перестает работать. (Вы подписываетесь ежегодно.)   -  person zekel    schedule 24.10.2009


Ответы (3)


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

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

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

person Alex    schedule 22.10.2009

Используйте _ 1_, чтобы загрузить перо:

YourController *controller = [[YourController alloc] init];
BOOL success = [NSBundle loadNibNamed:@"YourNibName" owner:controller];
person ianh    schedule 22.10.2009
comment
Похоже, loadNibName: owner - это метод класса, а не метод экземпляра. - person zekel; 22.10.2009

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

person NSResponder    schedule 21.10.2009
comment
Мне сказали, что он есть на одном из сайтов разработчиков Cocoa, но я не смог его найти ... - person zekel; 22.10.2009