0

我在 iOS 上一直看到这叫做 ALL THE TIME,这使得将一些很酷的 Core Abimation 的东西移植到 Mac 上变得非常困难,因为我不知道下面的内容是什么......

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

TUIViewTwUI(Twitter 的 Mac GUI 框架)在他们的类中有一个类似/相同的方法- (void)willMoveToSuperview:(TUIView *)newSuperview {},这是一个创建@interface TUIView : TUIResponder子类的新实例的方法。这让我相信这是创建 ? 的新实例的一般调用,我承认这是我NSResponder不了解的 Cocoa 模式之一……我有点认为这可能只是为了卸载视图或加载一个新的观点,或者改变观点的层次结构。但同样,不确定。

无论如何……由于 AppKit/UIKit 之间的 View Controller 结构的根本差异,在 Mac 端是否有一个直接/等效的调用,或者这是一个不同的野兽?

4

1 回答 1

3

您可以-[NSView viewWillMoveToSuperview:]在自定义 NSView 子类中覆盖。这只是一种在视图层次结构中的位置即将更改时通知您的类的方法。除了其名称所暗示的含义之外,它没有其他更深层次的含义,但是您当然可以利用它来服务于各种目的。它不是委托或视图控制器上的方法,但如果您愿意,您可以自己实现此类委托。

此外,如果您的代码在视图层次结构中移动视图,它可以直接提前立即执行任何操作,这也是调用此类方法的大致时间。

于 2012-04-13T00:36:15.663 回答