我有一個ImageView,它顯示一個鎖,告知打開的文件是否被鎖定。我有2張鎖定和解鎖的圖像。我想要將顯示的圖像與代表打開文件的對象的布爾值同步。手動綁定在可可
爲此,我希望我的ViewController根據對象的鎖定狀態更改ImageView中的圖像。所以對象和ViewController都有一個屬性「isLocked」。
我該如何同步它們?在IB很容易,但我不知道如何以編程方式進行。我嘗試使用我的ViewController的初始化方法:
[ViewController bind:@"value" toObject:[ArrayController selection] withKeyPath:@"isLocked" options:nil];
但它不起作用。在文檔中,據說我必須在使用它之前公開我的綁定。
我嘗試把下面的代碼在我的對象的初始化方法:
[self exposeBinding:@"isLocked"];
但Xcode中不承認這個方法。
有人有這種綁定建立的經驗嗎?
你想要做的鍵 - 值觀察? – 2011-04-03 09:00:06
可能是有可能的。但我認爲綁定更容易實現。其實我只需要我的ViewController屬性來更新對象的屬性更改。通過按下ImageView觸發的ViewController的IBAction提供逆向更改。但無論如何,關於在不在InterfaceBuilder中的對象之間建立手動綁定的問題仍然是實際的。我相信我會在我的計劃的其他部分需要它。 – BartoNaz 2011-04-03 09:28:39
還有一條評論。我曾經想過關鍵值觀察,我不知道它是否非常合適,因爲我有許多代表文件的對象,並且它們是按數組組織的。所以我的ViewController可以通過arrayController.selection.isLocked訪問它們。將觀察者添加到這樣的對象是否合適?我該如何指出呢?有我的對象使用IBOutlet ViewController使其可以添加爲觀察員? – BartoNaz 2011-04-03 10:03:21