我試圖將我的NSArraycontroller
綁定到NSMutableArray
;該數組包含「iData」類型的對象(這是一個自定義類)。該類還包含一些NSMutableString
變量,這些變量被設置爲KVC的鍵。然後我將我的NSTableColumn
綁定到NSArrayController
,並分別設置每列的關鍵模型路徑。如何在填充與之關聯的NSMutableArray(綁定)時刷新NSTableVIew
當我嘗試填充數組時,GUI不顯示任何內容。我忘了什麼?
我試圖將我的NSArraycontroller
綁定到NSMutableArray
;該數組包含「iData」類型的對象(這是一個自定義類)。該類還包含一些NSMutableString
變量,這些變量被設置爲KVC的鍵。然後我將我的NSTableColumn
綁定到NSArrayController
,並分別設置每列的關鍵模型路徑。如何在填充與之關聯的NSMutableArray(綁定)時刷新NSTableVIew
當我嘗試填充數組時,GUI不顯示任何內容。我忘了什麼?
所以,很可能你早就解決了這個,但在碰到這個問題的情況下別人絆...
我通過
NSMutableArray
填充數組,但我不知道我怎麼能填充數組通過NSArrayController
,因爲我的Controller.m類中沒有實例。請告訴我如何解決這個問題。
這可能是你在做類似
[myData addObject:someObject];
然而,你NSArrayController
不會學習這種變化的NSMutableArray
實例,因爲addObject
不兼容KVC。您需要通知任何觀察到您的實例已更改的對象。至少有兩種方法可以做到這一點。假設你NSMutableArray
實例屬性名爲「myData的」,那麼你可以做類似如下:
[self.willChangeValueForKey:@"myData"];
[myData addObject:someObject];
[self.didChangeValueForKey:@"myData"];
或
NSMutableArray *bindingsCompliantArray = [self mutableArrayValueForKey:@"myData"];
[bindingsCompliantArray addObject:someObject];
Another SO answer(鏈接)有什麼mutableArrayValueForKey實際上做了很好的解釋,但我建議閱讀關於鍵值編碼和鍵值觀察的Apple開發人員文檔,以幫助理解它。
我在mainmenu.nib托盤中拖動了NSController實例。我是否需要在Controller.h文件中聲明一個IBOutLet NSArrayController,然後將其與托盤中的NSArrayController實例連接起來?
你在你的筆尖文件需要一個NSArrayController
實例,但你並不需要一個IBOutlet在您的界面,你在這裏所描述的情況。 NSArrayController
應該綁定到你的NSMutableArray
(在我的例子中是myData)的密鑰,這聽起來像你已經有正確綁定你的表列。
你是如何填充你的數組? 。如果你通過arrayController填充數組,那麼你不會得到一個自動更新。 – 2010-10-29 07:51:10
我通過NSMutableArray填充數組,但我不知道如何通過NSArrayController填充數組,因爲我的Controller.m類中沒有實例。請告訴我如何解決這個問題。 – Omayr 2010-10-29 07:57:30
我已經拖動我的mainmenu.nib托盤中的NSController實例。我是否需要在Controller.h文件中聲明一個IBOutLet NSArrayController,然後將其與托盤中的NSArrayController實例連接起來? – Omayr 2010-10-29 08:15:17