4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dock上のアイコンにファイルをドラッグし、アプリ側で受け取る方法

Last updated at Posted at 2020-07-30

概要

  • Dock上のアイコンにファイルをドラッグし、アプリ側で受け取る方法を紹介します。
image

参考

実装

-w824

  • ちなみにinfo.plist的には以下の通りになります。
  • ただしplistを直接編集したときに、上記画面との同期が怪しいです。
  • 一旦Xcodeを閉じないとうまく行かなかったりするので、info.plistを直接編集するのは避けたほうが良さそうです。
<key>CFBundleDocumentTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeExtensions</key>
			<array/>
			<key>CFBundleTypeIconFile</key>
			<string></string>
			<key>CFBundleTypeName</key>
			<string>ImageType</string>
			<key>CFBundleTypeRole</key>
			<string>Editor</string>
			<key>LSItemContentTypes</key>
			<array>
				<string>public.jpeg</string>
				<string>public.png</string>
			</array>
		</dict>
		<dict/>
	</array>
  • またはExtensinonsに開きたいファイルの拡張子を設定することも可能です。
  • ただし問題点として以下の例では*.JPGは受け取れますが*.jpegが受け取れません。
    • jpegExtensionsに追加すればいいですが網羅することが難しくなるので、やはりUTIで指定するのが便利そうですね。

func application(_ sender: NSApplication, openFile filename: String) -> Bool {
    print(filename)
    return true
}

func application(_ sender: NSApplication, openFiles filenames: [String]) {
    print(filenames)
}
  • 以上でファイルをDock上のアイコンにドロップして受け取れるようになりました。
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?