Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 拖放而不实现tableView:objectValueForTableColumn:row:和numberOfRowsInTableView:_Cocoa_Core Data_Cocoa Bindings - Fatal编程技术网

Cocoa 拖放而不实现tableView:objectValueForTableColumn:row:和numberOfRowsInTableView:

Cocoa 拖放而不实现tableView:objectValueForTableColumn:row:和numberOfRowsInTableView:,cocoa,core-data,cocoa-bindings,Cocoa,Core Data,Cocoa Bindings,我有一个单列的NSTableView,它通过绑定到核心数据实体的NSArrayController获取数据。数据提要工作得很好,我已经能够通过实现这些方法来实现拖放工作 –numberofrowsintable视图: –tableView:objectValueForTableColumn:row: 以及具体的拖放方法 –tableView:acceptDrop:row:dropOperation: –tableView:writeRowsWithIndexes:toPasteboard: 但是

我有一个单列的NSTableView,它通过绑定到核心数据实体的NSArrayController获取数据。数据提要工作得很好,我已经能够通过实现这些方法来实现拖放工作

–numberofrowsintable视图:

–tableView:objectValueForTableColumn:row:

以及具体的拖放方法

–tableView:acceptDrop:row:dropOperation:

–tableView:writeRowsWithIndexes:toPasteboard:

但是,即使tableview通过阵列控制器提供数据,我真的必须实现前两种方法吗?我尝试对我的实现进行注释,但在控制台中出现错误,说“非法的NSTableView数据源”。NSTableViewDataSource协议的文档说明,如果应用程序使用Cocoa绑定,那么这些方法是可选的,所以很明显,我做错了什么


问题:如何使tableview使用其现有绑定并仍然支持拖放?

我相信您确实需要实现它们来平息投诉。我相信当与绑定一起使用时,这些数据源方法返回的值会被忽略。因此对于-numberOfRowsInTableView:您可以返回零;for-tableView:objectValueForTableColumn:row:您可以返回nil。

您不需要实现这些方法。这看起来很不稳定,但我通过在Interface Builder中重新建立数据源连接使他们沉默了。我认为,如果在添加绑定之后添加数据源,可能会使警告静音