2012-04-12 3 views
0

Я вижу, что это называется ВСЕ ВРЕМЯ на iOS, и это очень затрудняет перенос некоторых из интересных материалов для исправления ядра на Mac, потому что я не могу понять, что это за ...Что такое эквивалент Mac для CALayer iOS «willMoveToSuperview»?

-(void)willMoveToSuperview:(UIView *)newSuperview { 

TwUI (Mac GUI рамка Твиттера) имеет сходный/идентичный метод в своем классе TUIView, - (void)willMoveToSuperview:(TUIView *)newSuperview {}, который представляет собой способ для создания нового экземпляра @interface TUIView : TUIResponder подкласса. Это заставляет меня думать, что это общий призыв создать новый экземпляр NSResponder?, Который, как я признаю, является одним из шаблонов какао, которые я понимаю наименее ... Я думал, что это может быть звонок просто для разгрузки вида, или загрузить новое представление, или, может быть, изменить представление иерархии. Но опять же, не уверен.

Независимо ... есть простой или эквивалентный вызов на стороне Mac или это другой зверь из-за фундаментальных различий в структуре View Controller между AppKit/UIKit?

ответ

3

Вы можете переопределить -[NSView viewWillMoveToSuperview:] в пользовательском подклассе NSView. Это просто средство для уведомления вашего класса, когда его позиция в иерархии представлений вот-вот изменится. Он не имеет более глубокого значения, кроме того, что подразумевает его название, но вы, конечно, можете использовать его для различных целей. Это не метод для делегата или контроллера представления, но вы можете реализовать такую ​​делецию самостоятельно, если хотите.

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