cocoa - 从 NSBrowser 拖动并使用绑定(bind)?

标签 cocoa cocoa-bindings nsbrowser

我已经实现了一个与 NSOutlineView 共享 NSTreeController 的浏览器,因此我可以轻松地在它们之间切换并保持状态同步。实现 NSOutlineView 的拖动支持很简单,但 NSBrowser 似乎在使用绑定(bind)时不支持拖动。有没有人能够支持从 NSBrowser 拖动同时使用绑定(bind)?

最佳答案

我通过创建 NSBrowserNSMatrixNSBrowserCell 的自定义子类解决了这个问题。我必须通过在 NSBrowser 子类 -mouseDown 中设置此模式来强制 NSBrowser 使用 NSRadioModeMatrix 模式(单个单元格)方法,因为它不断被重置。

NSBrowserCell子类中,我通过简单地让父类(super class)做它的事情来实现trackMouse:inRect:ofView:untilMouseUp:,但返回NO因此会发生跟踪,这允许在我的 NSMatrix 子类中调用 mouseDragged: 。在 mouseDragged: 中,我做了所有的事情来获取鼠标位置,构造鼠标图像,并使用 [self DragImage:at:offset:pasteboard:source:slideBack:].

我不确定这是否是最好的方法,但它确实有效。仅当 NSBrowser 中允许单个选择时它才有效。

关于cocoa - 从 NSBrowser 拖动并使用绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10190154/

相关文章:

objective-c - 如何像DVD播放机一样改变空间?

objective-c - Aaron Hillegass::[NSArrayController add] = insertObject 方法

objective-c - Cocoa 与核心数据的绑定(bind)未更新所有列

macos - 实现 NSBrowserDelegate 协议(protocol)的问题

cocoa - 在相同加密的情况下更改密文(IV) Cocoa?

objective-c - 如何为窗口 cocoa 的一部分提供平铺图像

cocoa - 防止 NSButtonCell 图像在其包含的 NSScrollView 之外绘制

cocoa-bindings - NSArrayController 使用 nib 将它绑定(bind)到排序描述符

objective-c - OS X 10.8+ 中带有 Finder 等部分的 NSBrowser