【问题标题】:What is The Mac equivalent of iOS's CALayer "willMoveToSuperview"?什么是 iOS 的 CALayer“willMoveToSuperview”的 Mac 等价物?
【发布时间】:2012-04-12 23:02:30
【问题描述】:

我一直在 iOS 上看到这称为 ALL THE TIME,这使得将一些很酷的 Core Abimation 的东西移植到 Mac 上变得非常困难,因为我无法弄清楚以下内容的用途......

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

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

不管……在 Mac 端是否有一个直接/等效的调用,或者这是一个不同的野兽,因为 AppKit/UIKit 之间的 View Controller 结构存在根本差异?

【问题讨论】:

    标签: macos uikit core-animation calayer appkit


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 2014-09-30
      • 1970-01-01
      相关资源
      最近更新 更多