我在iOS上看到这称为ALL THE TIME,这使得很难将一些很酷的Core Abimation内容移植到Mac上,因为我无法弄清楚以下是什么...... < / p>
-(void)willMoveToSuperview:(UIView *)newSuperview {
TwUI(Twitter的Mac GUI框架)在TUIView
类- (void)willMoveToSuperview:(TUIView *)newSuperview {}
中有一个类似/相同的方法,这是一种创建@interface TUIView : TUIResponder
子类的新实例的方法。这让我相信这是一个创建NSResponder
的新实例的一般调用,我承认这是我理解的至少的Cocoa模式之一......我有点想到它可能是一个只是为了卸载视图,或加载一个新的视图,或者可能更改视图heirarchy的电话..但再次,不确定。
无论如何......由于AppKit / UIKit之间视图控制器结构的根本区别,Mac端是否有直接/等效的呼叫,或者这是一个不同的野兽?
答案 0 :(得分:3)
您可以在自定义NSView子类中覆盖-[NSView viewWillMoveToSuperview:]
。这只是一个方法,当您的类在视图层次结构中的位置即将更改时,它将被通知。除了它的名字所暗示的之外,它没有更深层的含义,但当然,你可以利用它来达到各种目的。它不是代理或视图控制器上的方法,但如果需要,您可以自己实现此类委托。
此外,如果你的代码是在视图层次结构中移动视图,它可以直接在预先做任何想要的事情,这也大致是在调用这样的方法时。