4

-如何顯示鈕釦電池(複選框)在表視圖標題,使用我想一個簡單的應用程序,我有可變的字典,如一個可變數組綁定

NSMutableDictionary *sample6 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"title6",@"title",[NSNumber numberWithBool:NO],@"state", nil]; 

在IB我創建了一個NSButtonCell的表格視圖(複選框)。

我能夠顯示覆選框狀態(選中還是未選中),使用下表列綁定:

Value - ArrayController.arrangedObjects.state 

在這種情況下,它示出了具有標題的複選框的陣列 - 「檢查」,如下畫面顯示在-shot:

enter image description here

現在我的目標是使用綁定顯示覆選框的標題,例如,它 會從相同的可變字典值從它正在獲得它的 狀態。

我嘗試下面的按鈕細胞結合,但它沒有工作:

標題 - > ArrayController.selection.title

我也試過這樣的鈕釦電池結合:

title - > ArrayController.arrangedObjects.title

,但它沒有工作,就出現了這樣的使用上面綁定後:

enter image description here

任何一個可以建議我使用哪個控制器關鍵,如果這是不顯示的正確方法標題,那麼正確的方法是什麼?

回答

6

不幸的是,如果你想這樣做,你需要寫一點代碼。將表列值綁定到數組時,表列正在處理原型數據單元格,設置其值,併爲每行「蓋印」它。按鈕單元格的綁定不會「透過」表格列,因此一個簡單的綁定不會爲您完成。

回答你的問題

所以。由於只有值綁定被公開,所以如果你真的希望複選框的標題反映該值(例如,你確實希望複選框同時處理校驗狀態和顯示標題),則必須手動設置標題。爲此,您必須將綁定與< NSTableDelegateProtocol >混合。每次詢問時,使用-tableView:willDisplayCell:forTableColumn:row:方法將單元格的-title屬性設置爲陣列控制器的-arrangedObjects數組中適當對象的屬性。混合綁定和數據源/委託方法實際上比大多數基本應用程序更常見,所以不要擔心你在做一些骯髒的事情。注意:由於這是一個複選框,因此您將無法支持編輯標題。

另一種設計

就個人而言,我會避免這一切,只需添加一個單獨的表列標題。將新列的值綁定到數組控制器的arrangedObjects.title並關閉複選框按鈕單元格的標題,以便只顯示覆選框本身。這大大簡化了整個事情,並允許編輯標題。

+0

嗨,約書亞,感謝您的回覆......我試過按鈕單元格的綁定,但它不起作用:title - > ArrayController.selection.title,你能建議我使用哪個控制器鍵嗎? – Devarshi

+0

我應該仔細閱讀。我道歉。我正在修改我的答案。爲您的寶貴解決方案提供 –

+0

thanx :-) – Devarshi

相關問題