可以通过Interface Builder的绑定模型密钥路径发送正常消息吗?

时间:2014-10-01 12:23:24

标签: objective-c cocoa interface-builder nswindow cocoa-bindings

通过Interface Builder的绑定模型密钥路径发送正常消息是否可以?

我想只在我的应用程序的主窗口可见时启用一些菜单项。我只是尝试以下方法来看看会发生什么:

在菜单项的绑定检查器中,我将可用性启用绑定到AppDelegate,并将模型关键路径设置为self.window.isVisible

enter image description here

这似乎运作良好,但它是否意味着像这样使用?在AppStore中合法吗?
我的模型关键路径旁边会出现一个小感叹号。

1 个答案:

答案 0 :(得分:1)

如果模型属性(isVisible)符合KVO(键值观察),则此绑定是合法的,因为绑定是使用KVO实现的。

(更新)NSWindow has several documented binding keys,包括密钥visible。由于标准KVC搜索模式会为密钥isVisible寻找visible,因此您可能始终可以使用。但是,你最好只绑定到visible,因为这已经记录了。

重要的一课是,您应该只绑定为Cocoa绑定记录的密钥,或者记录为符合KVO标准的密钥。

感叹号是Xcode的警告方式,它不知道绑定是否合法。您可以将鼠标指针悬停在工具提示上:

“Xcode cannot resolve the entered keypath”