LoginSignup
0
1

More than 3 years have passed since last update.

Document-Based AppのmacOSアプリでメニューからファイルオープンするために必要なこと

Last updated at Posted at 2021-01-16

画像ビューアを作ってみようかと思ったら初手で軽くハマったので、同じようなことでつまずく人もいるでしょう、ということで。
環境はXcode12.3。

Document Appでプロジェクトを新規作成

これは当然なので説明は省略。

Document Typesに対象となるファイルの種類を登録

Target->Info->Document Typesにファイルを登録していく。

Classにはプロジェクト作成時に自動的に作成される"Document"クラスを指定。

IdentifierにはUTIというものを指定する。具体的にどんな文字列を指定すればいいかはApple本家の情報が見当たらないが、下記サイトに一覧が書かれている。
http://potting.syuriken.jp/potting_conv/understanding_utis_J/chapter4.html

以下、画像ファイルを開くための例。

スクリーンショット 2021-01-16 9.30.09.png

DocumentクラスをObjective-Cから利用できるようにする

SwiftベースのアプリではNSDocumentを継承した"Document"クラスがそのままでは使えないそうで、@objcを使った一行を追加する必要がある。(この情報がなかなか見つからなかった・・・)
具体的にはこんな感じ。

@objc(Document) // 追加
class Document: NSDocument {
...

Documentクラスの読み込みのメソッドに手を入れる

ここまでくればファイル選択まではできるので、あとは実際の読み込み処理を追加する。
デフォルトでは下記のメソッドが呼び出される。

override func read(from data: Data, ofType typeName: String)

ファイルパスでもらいたい場合は下記のメソッドをオーバーライドする。

override func read(from: URL, ofType: String)
0
1
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
0
1