ファイルをDockアイコンにドラッグすると「検証中」で遅い問題への対処

Touchdown 1.2を実装中に気がついたのですが、macOS 10.3 High Sierraから、ファイルのダブルクリックやDockアイコンへのドラッグ時にファイルの検証が実行されることがあるようです。

通常使用では問題ないのですが、巨大なファイルや大量のファイルをドラッグした時に問題が発生。

アプリアイコンへのファイルドラッグを受け付けるNSApplicationDelegateのfunc application(NSApplication, openFiles: [String])が呼び出されるのが非常に遅くなっています。

しかも、もともとこのopenFilesはファイル数が多いと複数回呼び出される謎仕様なので、Touchdownの「まとめて受け取って一括変換」という仕様と相性が悪く、ver.1.1までは短いタイマーを貼って全ファイルの受け取りを待つという残念な実装になっていました。

High Sierraからはかなり長い間隔をあけてopenFilesが複数回呼び出されるケースがあるため、適当な対応では対処しきれなくなったため、変換前に確認する場合の仕様を変更することにしました。

従来:最後にまとめてドラッグされたファイルを変換

Ver1.2:変換確認中にドラッグされたファイルをキューに追加していって変換

これに伴い変換するファイルの管理もArrayからSetに変更して、重複しないようにしました。

OSがバージョンアップするとやはり色々ありますね。

0 件のコメント:

コメントを投稿

Touchdown 1.2公開!

Touchdown 1.2を公開しました。 ダウンロードは こちら から。 Ver.1.2の変更点は以下の通りです。 新機能 macOS High Sierra 10.13以降に対応 コマンドキーを押しながら起動することで設定を保存しない機能を追加 一...