2009-06-25 56 views
0

我有NSTableView綁定到一個NSArrayController。在我的模型中,我有一個BOOL字段。我試圖將該值綁定到列。它會正確顯示(值爲YES時爲1,值爲NO時爲0),但它是隻讀的。 =(當我試圖編輯一個值,我不能提交 - 當我按下輸入什麼都沒有發生,setter從不被調用。結合它像往常一樣,所有的作品,但我不能做同樣的編程=(NSTableColumn綁定到一個BOOL值

這列如何創建並添加:

NSTableColumn *column = [[[NSTableColumn alloc] initWithIdentifier:@"ok"] autorelease]; 
[column setEditable:YES]; 
[[column headerCell] setStringValue:@"OK"]; 
[column bind:@"value" toObject:self.arrC withKeyPath:@"arrangedObjects.ok" options:nil]; 
[table addTableColumn:column]; 

我有一個問題只與布爾值,如果我綁定相同的列到其他字段(只是更改keyPath)都可以正常工作。

+0

順便說一句,與NSTextCell相同的問題 - 我無法編輯它.. – 2009-06-25 02:02:01

回答

0

您需要綁定表格列,而不是單元格。

+0

對不起,我沒有足夠好地描述它。實際上,我是綁定列。該問題僅適用於BOOL值 - 字符串值和整數值正常工作。 – 2009-06-25 02:37:06

+0

在這種情況下,請編輯您的問題以包含Bindings檢查器的屏幕截圖,並選中該列。 – 2009-06-25 04:44:13

+0

問題是,我可以使它與IB工作沒有任何問題。但我不能讓它工作,如果我創建列並將其添加到表中的運行時進程 - 它適用於其他領域,但不適用於布爾字段。 – 2009-06-25 15:13:52

1

它的只讀=(當我試圖編輯值我不能提交 - 。當我按下輸入什麼也沒有發生,二傳則永遠不會調用列是可編輯

然後,在你的代碼片段:

[column setEditable:NO]; 

你列不可編輯這就是爲什麼編輯不工作變動NO到。 0。

順便說一句:有沒有原因顯示這個值爲文本而不是複選框?

0

什麼是綁定到arrC,我假設你的數組控制器?

是否將arrC綁定到數組?數組中的對象綁定到控制器是什麼? Coredata實體? NSMutableDictionaries?

0

您需要一個值轉換器,特別是NSNegateBooleanTransformerName。 Google for Apple的「超值變形編程指南」

相關問題