在非基于文档的应用程序中拖动文件夹以停靠图标

时间:2018-12-25 09:49:26

标签: swift macos cocoa

到目前为止,我已经尝试了每种文档类型和委托方法,而我的非基于文档的应用程序只是不接受停靠图标上的任何已删除文件/文件夹。

这是我从Apples Notes应用程序复制的文档类型,该应用程序支持在其图标上放置文件夹:

<dict>
    <key>CFBundleTypeName</key>
    <string>General files and folders</string>
    <key>CFBundleTypeRole</key>
    <string>Viewer</string>
    <key>LSItemContentTypes</key>
    <array>
        <string>public.folder</string>
    </array>
</dict>

代表设置正确,否则根本不会调用我的applicationWillFinishLaunching

我尝试实现任何一个

  • application(_ sender: NSApplication, openFile filename: String) -> Bool
  • application(_ sender: NSApplication, openFiles filenames: [String])

没有成功。我只是无法使停靠图标接受放置。我想念什么?

更新:

结果是,我必须将Debug构建拖动到/Applications才能接受拖动。至少可以说,这不仅麻烦。可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这似乎很奇怪,但这是我为使其正常工作所做的事情:

  • Debug构建拖动到/Applications
  • 启动它并将文件拖到其中
  • 再次从Xcode构建并运行该应用。现在/Applications
  • 之外的Xcode构建也可以使用Drop
  • 您现在可以从/Applications删除复制的版本,仍然可以使用。