2012-06-25 33 views
5

我想一個NSTextField的布爾enabled屬性綁定到一個NSButton的狀態。我已經嘗試添加自定義NSValueTransformer是變換NSButton的狀態改變成NSNumber。但是,在這種情況下,出於某種原因,文本字段始終處於禁用狀態。我的第二個辦法:要壞也沒有因爲NSValueTransformer不提供返回原語類型,如BOOL可可:如何將布爾屬性綁定到NSCellStateValue?

實施例:
該屏幕截圖示出了文本字段被禁用,因爲該複選框的狀態爲NSOnState一個例子。我也想將標籤綁定到這個狀態。

Disabled text fields

此外,這將是方便的,如果我能在Interface Builder設置 「禁用文本」。在上面的例子中,我在關聯的類中設置了文本。


編輯:

我設置self.anonymousLoginCheckbox.state作爲型號關鍵路徑啓用帳戶文本字段的財產。類似於密碼文本字段。但是,不是的工作。

Interface Builder Binding


更新:

我創建由Nicolas Bachschmidt麻煩描述的example project available on GitHub showing the implementation

回答

13

NSButton對於密鑰state不符合KVO標準。可可綁定要求觀察對象在觀察屬性改變時發出通知。由於NSButtonstate只是其單元格state,-[NSButton setState:]的包裝方法(並且自動KVO通知)在用戶單擊按鈕(但-[NSCell setState:]是)時不會被調用。如果您將模型關鍵路徑設置爲self.anonymousLoginCheckbox.cell.state,它將起作用。

相關問題