viewDidLoad в NSViewController?

в iPhone я делаю UIViewController viewDidLoad и пишу код установки для настройки представления.
Но как я могу это сделать в NSViewController?
Я пробовал с loadView, но он не работает … Может быть, я что-то не так, я не знаю …

PS: Я только что начал с программирования OSX / iOS, так что извините, если я спрошу что-то глупое 🙁

Начиная с OS X 10.10, viewDidLoad доступен и поддерживается в NSViewController .

До этого вы должны были пройти этот самородок в примечаниях к выпуску Snow Leopards:

Советы для людей, которые ищут методы -viewWillLoad и -viewDidLoad в NSViewController

Хотя NSWindowController имеет методы -windowWillLoad и -windowDidLoad для переопределения classа NSViewController, представленного в Mac OS 10.5, не имеет соответствующих методов -viewWillLoad и -viewDidLoad. Вы можете переопределить [NSViewController loadView], чтобы настроить то, что происходит непосредственно перед или сразу после загрузки nib, выполняемой controllerом представления.

Я понял это в течение нескольких минут после публикации моего комментария. Добавление моего вывода в качестве ответа, потому что это пример, отсутствующий в документах. Приведенный ниже код предоставит вам метод viewDidLoad. Это так просто, что я удивляюсь, почему Apple еще не реализовала его в OS X.

 - (void)viewWillLoad { if([NSViewController instancesRespondToSelector:@selector(viewWillLoad)]) { [super viewWillLoad]; } ... } - (void)viewDidLoad { if([NSViewController instancesRespondToSelector:@selector(viewWillLoad)]) { [super viewDidLoad]; } } - (void)loadView { BOOL ownImp = ![NSViewController instancesRespondToSelector:@selector(viewWillLoad)]; if(ownImp) { [self viewWillLoad]; } [super loadView]; if(ownImp) { [self viewDidLoad]; } } 

Исходный источник: http://www.cocoabuilder.com/archive/cocoa/195802-garbage-collection-leaks-and-drains.html

Начиная с OSX 10.10 (Yosemite) в -viewDidLoad теперь есть -viewDidLoad , -viewWillAppear , -viewDidAppear , NSViewController . См. WWDC 2014 – Раскадровки и controllerы в сеансе OS X для получения дополнительной информации, чтобы узнать, когда вызывается каждый из них и т. Д.

Вот соответствующий бит из 10.10 заголовочных документов о -viewDidLoad:

Вызывается после загрузки представления. Для controllerов представлений, созданных в коде, это после -loadView. Для controllerов представлений, исключенных из наконечника, это происходит после того, как будет установлено представление. По умолчанию ничего не делает.

 - (void)viewDidLoad NS_AVAILABLE_MAC(10_10); 

почему бы вам не попробовать:

 - (void) awakeFromNib{ //setup code NSLog(@"hello there"); } 

Похоже, что в 10.10 viewDidLoad теперь находится в NSViewController.

хм, на самом деле я бы тоже сделал это …

 - (void)viewWillLoad { if (! bool_viewwillload) { // execute the code bool_viewwillload = true; } } - (void)viewDidLoad { if (! bool_viewdidload) { // execute the code bool_viewdidload = true; } } 

а затем просто сделайте вид загрузки таким образом

 - (void)loadView { [self viewWillLoad]; [super loadView]; [self viewDidLoad]; } 
  • Использование Objective C / Cocoa для unescape символов Unicode, то есть \ u1234
  • Open Source Cocoa / Cocoa-Touch POP3 / SMTP библиотека?
  • Только два закругленных угла?
  • UISlider для управления AVAudioPlayer
  • objective-C: Как получить адрес маршрутизатора?
  • UIScrollView - показывает полосу прокрутки
  • Ссылка с UITableViewCell на родительский UITableView?
  • Полноэкранный UIView со строкой состояния и наложением панели навигации наверху
  • Могу ли я получить доступ к брелкам на iPhone?
  • Чтение образцов с помощью AVAssetReader
  • Добавление изображений в UITextView
  • Interesting Posts

    Как управлять уровнем громкости системы на OS X с помощью клавиатуры без средств массовой информации?

    Создание и построение эмпирического совместного PDF и CDF

    Как открыть файл в WMP 11 по командной строке без его воспроизведения?

    Команда «wmic memphysical get maxcapacity» дает неправильный номер

    Большая копия Win7 x64 Ошибка создания файла – Срок таймаута семафора истек

    Использование ListAdapter для заполнения LinearLayout внутри макета ScrollView

    java InetAddress.getLocalHost (); возвращает 127.0.0.1 … как получить REAL IP?

    Windows 10 показывает оранжевый экран с белыми вертикальными линиями при загрузке

    «Расширить объем» не работает в Windows Vista

    Понимание Android: Zygote и DalvikVM

    nodejs mysql Ошибка: соединение потеряно Сервер закрыл соединение

    univot и PostgreSQL

    Кодовая документация для delphi, аналогичная javadoc или c # xml doc

    Spinner: onItemSelected не вызывается, когда выбранный элемент остается тем же

    Проверка объекта на основе внешних факторов (т. Е. Уникальность хранилища данных)

    Давайте будем гением компьютера.