我只是試圖使用複選框來啓用/禁用NSTextField。我列出我試圖在細節的最後一個方法之下,但我已經嘗試過多種方式:可可綁定不按預期工作?試圖綁定NSTextField的啓用複選框狀態
使用的NSObjectController綁定到控制器和複選框和標籤綁定到NSObjectController選擇與財產的關鍵路徑內容對象控制器。有和沒有NSIsNil變壓器。
沒有將複選框和標籤綁定到控制器的NSObjectController與控制器中的BOOL屬性的鍵路徑。有和沒有NSIsNil變壓器。
NSObjectController添加了鍵和「準備內容」設置複選框和標籤綁定到NSObjectController選擇和添加鍵路徑的關鍵。有和沒有NSIsNil變壓器。
我已經過了很多例子,閱讀文檔,並沒有運氣得到這個工作。
- 清潔項目可可項目。
- 將NSObjectController「對象控制器」添加到main.xib中。
- 在IB中將NSObjectController設置爲「準備內容」
- 將值「enableText」添加到鍵。
- 拖動複選框和標籤到視圖中。
- 將綁定添加到綁定到「對象控制器」的「值」的複選框,其中控制器關鍵字「選擇」和模式關鍵路徑「enableText」。此時,自動完成報告「找不到完成」!它應該找不到我添加到對象控制器的那個?
- 將綁定添加到綁定到「對象控制器」的「已啓用」的標籤上,其中帶有控制器關鍵字「選擇」和模式關鍵路徑「enableText」。同上。
運行和它崩潰。如果我將標籤綁定設置爲具有NSIsNil的Transformer或它提供的任何選項,它不會崩潰,但是複選框不會更改標籤的啓用狀態。崩潰結果如下。
值得注意的是,如果我還在標籤值和與啓用的綁定相同的鍵之間添加了綁定,則當我切換複選框時,標籤內容會在0和1之間切換。所以,這看起來應該很容易適用於已啓用的綁定......但事實並非如此。
2012-02-20 23:43:58.273 TestBindings2[12346:903] -[_NSControllerObjectProxy copyWithZone:]: unrecognized selector sent to instance 0x10
2012-02-20 23:43:58.275 TestBindings2[12346:903] An uncaught exception was raised
2012-02-20 23:43:58.276 TestBindings2[12346:903] -[_NSControllerObjectProxy copyWithZone:]: unrecognized selector sent to instance 0x10
2012-02-20 23:43:58.278 TestBindings2[12346:903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_NSControllerObjectProxy copyWithZone:]: unrecognized selector sent to instance 0x10'
使用XCode 4.2和OSX 10.6.8。