Dan*_*ell 4 cocoa nstableview appkit swift
我有一个基于视图的NSTableView,它接受从finder中删除的图像.我希望能够在指定的放置位置插入新图像(左下方示例)并防止行本身掉落(下面的右侧示例).
我看了一个委托方法和NSTableView属性和方法,但看不到防止drop-on-rows的方法.有任何想法吗?
图:光标尚未在屏幕截图中呈现.在左侧示例中,我拖动一个名为Pic_3.png的文件,NSTableView通过在插入新图像的位置绘制一条线来响应.在右边的示例中,我继续拖动并将其放置在表视图中的现有行上.我没有任何意义,插入在现有的项目,所以我想阻止这种行为.
委托方法
func tableView(_ tableView: NSTableView,
validateDrop info: NSDraggingInfo,
proposedRow row: Int,
proposedDropOperation dropOperation: NSTableView.DropOperation) -> NSDragOperation
Run Code Online (Sandbox Code Playgroud)
处理拖动行为.该参数proposedDropOperation传递当前值NSTableView.DropOperation.NSDragOperation如果operation不是,.above则返回指定的.none.例如
if dropOperation == .above {
info.animatesToDestination = true
return .move
} else {
return .none
}
Run Code Online (Sandbox Code Playgroud)
另一种DropOperation情况.on表示拖动该行.
| 归档时间: |
|
| 查看次数: |
487 次 |
| 最近记录: |