2010-10-03 49 views
1

我有一個單列NSTableView,它通過綁定到核心數據實體的NSArrayController獲取其數據。數據饋送的偉大工程,我已經能夠得到拖放工作通過實施方法拖放不執行tableView:objectValueForTableColumn:row:and numberOfRowsInTableView:

– numberOfRowsInTableView:
– tableView:objectValueForTableColumn:row:

以及具體的拖放方法

– tableView:acceptDrop:row:dropOperation:
– tableView:writeRowsWithIndexes:toPasteboard:

但我真的必須實現前兩個方法,即使tableview是通過數組控件提供數據LER?我試着評論我的實現,但後來在控制檯中發現錯誤,說「非法NSTableView數據源」。 NSTableViewDataSource協議的文檔說如果應用程序使用Cocoa綁定,這些方法是可選的,所以顯然,我做錯了什麼。

問題:如何使tableview使用其現有的綁定,仍然支持拖放?

回答

0

我相信你確實需要實施這些措施來鎮壓投訴。我相信,當與Bindings一起使用時,這些數據源方法返回的值將被忽略。所以對於-numberOfRowsInTableView:你可以返回零; for -tableView:objectValueForTableColumn:row:你可以返回nil。

+0

是的,那是有效的。謝謝! – Frost 2010-10-04 16:46:09

0

你不需要實現這些方法。它看起來很不穩定,但我通過在Interface Builder中重新建立數據源連接來使它們變得沉默。我想也許如果你添加綁定後添加數據源,它會使警告無效。