我对Cocoa很陌生,我正在开发一个可以拖放到NSOutlineView
的应用程序。
我已实施" outlineView:validateDrop:proposedItem:proposedChildIndex
"和" outlineView:acceptDrop:item:childIndex:
"使NSOutlineView
目标丢弃的方法。它可以正常工作,除了它试图指定一个行/位置,其中应该删除来自不同NSOutlineView
的项目。
我的应用程序并不需要指定项目应放在哪个行上或上面;理想情况下,当我拖放到NSOutlineView
时,我希望突出显示整个NSOutlineView
框。行选择将以编程方式完成。
我该如何做到这一点?
答案 0 :(得分:3)
您将要使用NSOutlineView
的{{3}}以编程方式设置要插入的索引。
要突出显示整个大纲视图,您可能需要尝试NSTableView
的{{3}}将dropRow设置为-1,该文档说明了这一点:
为行传递值-1,并将NSTableViewDropOn作为操作传递,导致整个表视图突出显示而不是特定行。如果接收方显示的数据不允许用户删除特定行位置的项目,则此功能非常有用。
NSOutlineView继承自NSTableView,因此如果NSOutlineView子类没有搞砸NSTableView的突出显示行为,这可能会有用。