如何在 OSX 应用程序的 Rubymotion 上实现拖放功能

How to implment drag and drop feature on Rubymotion for a OSX app

尝试制作一些快速而肮脏的东西来批量重命名和转换文件,并且拥有 ruby​​motion 许可证我想为什么不使用它来制作一个简单的应用程序,你可以拖放而不是一些批处理文件。

但是我在检测拖动事件时遇到了问题,似乎无法找到有关如何在 ruby​​motion 中执行此操作的信息,我只使用 ruby​​motion 来制作 iOS 应用程序,但发现自己迷路了。

如有任何帮助,我们将不胜感激。

您是否开始学习任何 Cocoa 教程? Objective-C 中编写的任何内容都可以轻松移植。我将从这里开始:Drag and Drop Programming (developer.apple.com)

如果你想支持拖拽到停靠图标上,你需要修改项目支持的文档类型,我不知道该怎么做(检查rake config,它可能会给出一个线索)。您最终也需要实现此方法:

def application(sender, openFile: path)
  # sender is an NSApplication, path is NSString
  true  # or false
end

您需要添加如下内容:

app.info_plist['CFBundleDocumentTypes'] = [
  {'CFBundleTypeRole': 'Viewer', 'CFBundleTypeExtensions': ['mp4','m4v','avi','*'] } ,
  {'CFBundleTypeRole': 'Editor', 'CFBundleTypeExtensions': ['txt'] }
]

Rakefile

中的设置块

并在app_delegate.rb

中的AppDelegateclass中添加如下方法
def application(sender, openFile: path)
  true
end

rake build 之前先做一个 rake clean,然后就可以开始了。

请注意,对于您放到应用程序图标上的每个文件,都会调用 application 方法。 path 包含一串拖放文件路径。