2009-12-12 39 views
0

我有一個NSArrayController其內容是我的AppDelegate的「servers」屬性。如何執行操作以響應要添加到NSArrayController內容的項目?

我具有被結合到NSArrayController的「selection.name」屬性的NSTextField和我具有連接到「add:」,並在NSArrayControllerremove:」動作的按鈕。

我想看到發生的事情是,當我點擊「添加」按鈕時,NSTextField成爲第一響應者,以便用戶可以立即編輯服務器的名稱。

我目前的策略是觀察NSArrayController的「arrangedObjects」屬性,但我得到的從NSKeyValueChangeKindKey背面是NSKeyValueChangeSetting枚舉。我希望能得到NSKeyValueChangeInsertion值,所以我可以讓文本字段成爲第一響應者。

我的問題是,我正在以正確的方式進行討論,還是有更常見的方法來完成此操作?我正在很好地綁定綁定,我只是在如何在裂縫中插入我自己的行爲而掙扎。

回答

1

創建NSArrayController的子類,並帶有出口到文本字段。覆蓋add:方法;在你的實現中,立即發送消息到super,然後告訴窗口使文本字段成爲第一響應者。

+0

感謝您的幫助。出於某種原因,我不得不發送makeFirstResponder:消息與performSelector:withObject:afterDelay :(在調用super之後)使其消失。 – 2009-12-12 08:22:47

+0

您可能需要延遲,因爲 - [NSArrayController add:]在內部延遲其工作。 – 2009-12-13 12:52:59

相關問題