Как вызывать awakeFromnib снова и снова, я использую setNeedsDisplay, это не работает

при загрузке представления Первый раз вызывается awakeFromNib, но я хочу снова вызвать awakeFromNib с помощью метода.

я пробовал [просмотреть setNeedsDisplay: YES]; но он снова не вызывает awakeFromNib

Может ли кто-нибудь предположить, почему не звонит awakeFromnib Заранее спасибо...


person bhavesh    schedule 29.01.2013    source источник


Ответы (2)


setNeedsDisplay:YES используется для перерисовки представления, которое не вызывается awakeFromNib.

Вы можете переместить все коды [self awakeFromNib]; в другой метод и вызвать их из awakeFromNib и позже, когда захотите перезапустить.

person Anoop Vaidya    schedule 29.01.2013
comment
Вы не должны напрямую вызывать awakeFromNib. Этот вызываемый метод означает определенную вещь; вызов его в любых других обстоятельствах означает объединение нескольких значений в один метод. Переместите то, что вы хотите сделать в обоих случаях, в другой метод и вызовите его из обоих мест. - person Peter Hosey; 29.01.2013

Проблема больше, чем просто исправление awakeFromNib. Настоящая проблема заключается в том, что в NSViewController нет метода, сообщающего контроллеру о загрузке представления. Что я обычно делаю, так это расширяю NSViewController и добавляю метод controllerHasFocus. И класс, который обрабатывает подкачку представлений, отправит controllerHasFocus. Тогда он будет действовать как viewDidLoad в iOS. Есть ряд дискуссий, которые, вероятно, объясняют это лучше, чем я, если вы ищете их на SO.

person estobbart    schedule 29.01.2013