将NSView添加到NSWindow

时间:2017-03-23 03:33:26

标签: macos cocoa nsview nswindow key-value-observing

问题:

我从第三方库获得NSView。当我获得NSView时,它还没有添加到NSWindow。我需要等到第三方库在执行我的一些代码之前将NSView添加到NSWindow。当发生这种情况时,第三方库没有方法通知我。我需要自己检查这个条件,我需要解决方案来处理OSX 10.9 / 10.10 / 10.11。

我尝试了什么:

  1. NSView中“window”属性的KVO。效果很好但不幸的是NSView中的“窗口”属性在OSX 10.9中不符合KVO。

  2. 生成一个线程并定期检查NSView上的“window”属性是否为!= nil。不幸的是会导致一些轻微的延迟。

  3. 问题:

    我可以在10.10之前使用任何KVO替代品吗?或任何其他解决方案?

1 个答案:

答案 0 :(得分:-1)

不好的方法是创建NSTimer以注意视图已添加到窗口