0

Можно ли отправлять обычные сообщения с помощью интерфейса клавиши привязки интерфейса Builder ?Можно ли отправлять обычные сообщения через путь ключа модели привязки Interface Builder?

Я хочу включить некоторые пункты меню только в том случае, если отображается главное окно приложения. Я просто попытался следующие, чтобы увидеть, что произойдет:

В привязок инспектора пункта меню я связать Наличие включенной в AppDelegate и установить модель ключевой путь к self.window.isVisible.

enter image description here

Это, кажется, работает хорошо, но это означало, которые будут использоваться, как это? Юридический в AppStore?
Немного появляется восклицательный знак рядом с моей моделью ключевым путем ..

+0

Я думаю, что 'isVisible' может быть имя геттер и свойство' visible'? – DeFrenZ

+0

Да, 'self.window.visible' также работает. Но является ли свойство «видимым» документированным где угодно? Могу ли я использовать это? Несмотря на частный случай, меня также интересует общее представление о том, что можно использовать в Path Key Path. – MartinW

+0

Я просто нашел 'visible' в ссылке привязки какао для NSWindow, но это ссылается на привязку для NSWindow, вы можете привязать что-то к' visible', а не наоборот: https://developer.apple.com/ library/mac/documentation/Cocoa/Reference/CocoaBindingsRef/BindingsText/NSWindow.html # // apple_ref/doc/uid/NSWindow-SW1 – MartinW

ответ

1

Это связывание является законным если свойство модели (isVisible) соответствует КВО (ключ-значение наблюдений), так как переплеты выполнены с использованием КВО.

(ОБНОВЛЕНО) NSWindow has several documented binding keys, включая ключ visible. Поскольку стандартный шаблон поиска KVC будет искать isVisible для ключа visible, то, что вы делаете, вероятно, всегда будет работать. Но вам лучше было бы привязываться к visible, так как это задокументировано.

Важным уроком является то, что вы должны привязываться только к ключам, которые документированы для привязок Cocoa, или к ключам, которые документированы как KVO-совместимые.

Восклицательный знак - это способ Xcode предупредить вас о том, что он не знает, является ли обязательная юридическая. Вы можете навести указатель мыши на ней подсказке:

“Xcode cannot resolve the entered keypath”