从NSButton拖动到NSButton

0 cocoa drag-and-drop draggable nsbutton

我正在尝试编写应用程序.这将允许用户从一个拖动NSButton到另一个.丢弃时,我希望将标题放在按钮上.

我无法找到一种NSButton可拖延的方法.可能吗?

小智 5

首先警告:这听起来像是让用户感到困惑.按钮旨在模拟现实世界中的按钮.你推它们而不是拖动它们.

话虽如此,它确实可以在NSButton的子类中完成.

拖动源

  1. 实现拖动源方法draggingSourceOperationMaskForLocal:.听起来你正在复制标题,所以你可能想要使用NSDragOperationCopy.
  2. 呼叫拖动图像:在:偏移:事件:纸板:来源:偏压补偿:在您的mouseDragged:方法.使用拖动pBoard([NSPasteboard pasteboardWithName:NSDragPboard])并将按钮标题复制到其中.对于图像,你可以画出你的按钮到NSImage中和使用,作为拖动图像,或者您可以使用一个图标,甚至只是标题.

拖动目的地

  1. 注册您的自定义按钮,以便能够使用registerForDraggedTypes:接受标题字符串.
  2. 实现拖拽目的地方法draggingEntered:和performDragOperation:返回适当的值.还有一些其他的方法,包括draggingUpdated:和draggingExited:等等,你可以用它来提供视觉反馈.

有很多关于实现拖放的信息.阅读Apple的文档:拖放编程主题粘贴板编程指南