有没有办法让NSView知道它的窗口什么时候关闭?

时间:2014-12-15 18:46:35

标签: macos cocoa nsview nswindow

我正在使用NSView子类,我想知道它的窗口何时关闭,以便我可以执行某些内务处理任务。这样做的标准方法是什么?如果可能的话,我想在NSView子类中执行此操作,因为我希望能够在没有其他依赖项的情况下在其他地方使用此子类。

2 个答案:

答案 0 :(得分:1)

您可以为viewWillDisappear创建扩展方法吗?

根据文件描述:

  

在以下情况下调用此方法:

     
      
  • 视图即将从窗口的视图层次结构中删除

  •   
  • 视图即将隐藏或隐藏,例如视图控制器的父级是制表符视图控制器且用户切换到另一个制表符

  •   
  • 正在关闭窗口

  •   

但是,这适用于NSViewController,而非NSView

答案 1 :(得分:1)

您可以覆盖-viewDidMoveToWindow,如果self.window不是nil,则视图会从窗口开始观察NSWindowWillCloseNotification通知。

同样,覆盖-viewWillMoveToWindow:,如果self.window不是nil,请停止观察该窗口的通知。