- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个包含许多项目的 NSTableView
。我想实现从 NSTableView 的内部 拖动到 外部 以删除拖动的项目。 (有点像 Safari 如何“噗”掉书签。)
NSTableView
已经配置为支持拖放重新排序,并接受来自应用程序中另一个 NSTableView
的拖放,所以虽然大部分都已连接,但我只是缺少一小部分功能。
更新:
感谢 Sean 迄今为止的帮助。虽然我可以收到一个项目在漂浮回到其原始位置后已被拖出的通知(请参阅他的回答的评论),但我希望在释放鼠标按钮后立即收到通知。
当前的行为是让用户拖放一个项目,拖动被视为“无效”,并让项目动画回到其原始位置。 然后收到通知,我可以删除该项目,但从 UI 的角度来看(对用户而言)有点困惑。
最佳答案
听起来您的 TableView 已经在实现 NSDraggingSource
协议(protocol)。在这种情况下,您可以添加方法 draggedImage:endedAt:operation:
(操作系统 10.7 之前)或 draggingSession:endedAtPoint:operation:
(OS 10.7) 将提供操作 NSDragOperationNone
在operation
拖拽失败时的参数。因此,您可以检查此操作是否已通过,然后删除对象并将其从 View 中移除。
换句话说,它看起来像这样(在 10.7 中):
-(void)draggingSession:(NSDraggingSession *)session endedAtPoint:(NSPoint)screenPoint operation:(NSDragOperation)operation {
if (operation == NSDragOperationNone) {
//delete object, remove from view, etc.
}
}
关于objective-c - 拖出 NSTableView 以移除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7707034/
我有一个包含许多项目的 NSTableView。我想实现从 NSTableView 的内部 拖动到 外部 以删除拖动的项目。 (有点像 Safari 如何“噗”掉书签。) NSTableView 已经
我有一个列表,我正在尝试创建一个系统,在该系统中,人们可以将元素从该列表拖动到 div(而不是其他列表),反之亦然。下面是我的代码: $(function() { $( "ul, li" ).disa
我是一名优秀的程序员,十分优秀!