2011-03-17 25 views
1

我有一個自定義NSCell(實際上繼承NSTextFieldCell),這是在一個獨立的編輯器使用兩個,並且在一個NSTableColumn(通過NSArrayController結合到核心數據)。當用戶更改該值時,我呼叫-[NSCell setObjectValue:]更新該值(它是NSNumber)。這可以在獨立編輯器中使用,因爲完成後我手動更新綁定。從定製更新核心數據的NSCell

[self setObjectValue:[NSNumber numberWithInt:newValue]]; 

即步驟(更新綁定字段)當電池處於NSTableView缺失 - 更新值顯示出來,而用戶的編輯(使用鼠標跟蹤),但只要該已經結束了,所述值卡扣回到持久的價值。

NSTableColumn綁定到密鑰-[NSArrayController arrangedObjects]。是否存在某種我稱之爲「commitEditing」或「updateBinding」的調用?在NSCellNSTableView的文檔中我找不到任何有用的功能。

回答

1

爲了解決這個問題,我在我的NSArrayController子類中實現了-tableView:setObjectValue:forTableColumn:row:。我從Row參數中獲取我的NSManagedObject子類的實例,然後從ObjectValue參數手動分配新模型。我仍然不知道爲什麼這是必要的,當文本單元格自動執行此操作時,但它工作。