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がバージョンアップするとやはり色々ありますね。
登録:
コメントの投稿 (Atom)
Touchdown 1.3公開!
Touchdown 1.3を公開しました。 ダウンロードは こちら から。 Ver.1.3の変更点は以下の通りです。 新機能 macOS Mojave 10.13以降に対応 ダークモードに対応 ぜひお試しください。
-
Touchdownでは複数の設定を保存して切り替えられるようにするため、NSTableViewをUIとして使います。 基本的なとこだけど、何かと分かりにくいCocoa Binding。 iOSでは使えないらしく情報も少なめなので、簡単にまとめておきます。 S...
-
TouchdownをSwift 4に変換した際に、フレームワーク側の変更に伴うコードの置換が発生していました。 ファイルのドラッグ&ドロップに関する部分ではドラッグ受付登録が、 register(forDraggedTypes: [NSFilenamesPboard...
-
macOS High SierraになりSwiftも4にバージョンアップ。 TouchdownもSwift 3からSwift 4に移行します。 基本的にはXcodeの移行ツールに従うだけで、途中で聞かれる Minimize Inference Match Swift...
0 件のコメント:
コメントを投稿