我已经实现了一个与 NSOutlineView 共享 NSTreeController 的浏览器,因此我可以轻松地在它们之间切换并保持状态同步。实现对 NSOutlineView 的拖动支持很简单,但似乎 NSBrowser 在使用绑定时不支持拖动。有没有人能够在使用绑定的同时支持从 NSBrowser 拖动?
问问题
229 次
1 回答
2
我通过创建 、 和 的自定义子类解决了NSBrowser
这个NSMatrix
问题NSBrowserCell
。我不得不通过在子类方法中设置此模式来强制NSBrowser
使用NSRadioModeMatrix
模式(单个单元格),因为它不断被重置。NSBrowser
-mouseDown
在NSBrowserCell
子类中,我trackMouse:inRect:ofView:untilMouseUp:
通过简单地让超类做这件事来实现,但返回NO
所以会发生跟踪,这允许mouseDragged:
在我的NSMatrix
子类中调用。然后我mouseDragged:
做了所有的事情来获取鼠标位置,构建鼠标图像,并使用[self dragImage:at:offset:pasteboard:source:slideBack:]
.
我不确定这是否是最好的方法,但它确实有效。它仅在NSBrowser
.
于 2012-04-17T21:28:49.790 回答