【问题标题】:Dragging from and to NSButton从和到 NSButton 拖动
【发布时间】:2010-10-03 13:36:48
【问题描述】:

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

我找不到使NSButton 可拖动的方法。有可能吗?

【问题讨论】:

    标签: cocoa drag-and-drop draggable nsbutton


    【解决方案1】:

    首先是一个警告:这听起来会让用户感到困惑。按钮旨在模拟现实世界中的按钮。你推他们而不是拖他们。

    话虽如此,当然可以在 NSButton 的子类中进行。

    拖动源

    1. 实现拖拽源方法draggingSourceOperationMaskForLocal:。听起来您正在复制标题,因此您可能需要使用 NSDragOperationCopy。
    2. 在 mouseDragged: 方法中调用 dragImage:at:offset:event:pasteboard:source:slideBack:。使用拖动板 ([NSPasteboard pasteboardWithName:NSDragPboard]) 并将您的按钮标题复制到其中。对于图像,您可以将按钮绘制到 NSImage 中并将其用作拖动图像,或者您可以使用图标甚至只是标题。

    拖动目的地

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

    那里有很多关于实现拖放的信息。阅读 Apple 的文档:Drag & Drop Programming TopicsPasteboard Programming Guide

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      相关资源
      最近更新 更多