放弃 NSTableView 行为

Posted

技术标签:

【中文标题】放弃 NSTableView 行为【英文标题】:Drop on NSTableView Behavior 【发布时间】:2011-01-13 20:23:38 【问题描述】:

我有一个 NSTableView 并且我已经成功实现了tableView:validateDrop:proposedRow:proposedDropOperation:tableView:acceptDrop:row:dropOperation:

我不需要tableView:writeRowsWithIndexes:toPasteboard:,因为那是为了将对象拖出 NSTableView。

现在,问题是我希望它的行为类似于 iTunes。在 iTunes 9.x 中(我不记得以前的版本)你有一个 NSTableView (播放列表),当你在它上面拖动一个文件时,你会在 NSTableView 中得到这个蓝色焦点(也许是 NSScrollView?),你没有蓝色水平线指示您要插入对象的位置。所以基本上我想:

没有蓝色水平插入线 悬停文件时的行之间 在 NSTableView 上。

NSTableView 内的蓝色焦点 (或 NSScrollView)。

任何帮助将不胜感激,因此在此先感谢您。

【问题讨论】:

【参考方案1】:

来自NSTableView reference:

- (void)setDropRow:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation

....

“为行传递值 –1,并且 NSTableViewDropOn 作为操作会导致整个表视图被突出显示,而不是特定行。如果接收器显示的数据不允许用户删除项目,这很有用在特定的行位置”

【讨论】:

谢谢。很抱歉监督 Apple 文档的重要部分。

以上是关于放弃 NSTableView 行为的主要内容,如果未能解决你的问题,请参考以下文章

NSTableView 响应面板中的第一次单击

NSArrayController 的奇怪行为

拖出 NSTableView 以移除

NSTableView:创建“重叠”行

NSTableView 意外调整大小

NSTableView 委托不工作/不填充单元格