« F1 ブラジルGP 決勝 | メイン | デジアイ その後 »

2014年11月11日

Macのドラッグ&ドロップの不具合

カテゴリー: プログラミング

Macのプレビュー.appには、複数の画像ファイルを同時に(アイコンへのドラッグ&ドロップ等で)開くと1つのウィンドウにまとめて表示してくれる機能があります。これは複数の画像ファイルを1つのPDFにまとめて保存したりするのに大変便利なのですが、まれに勝手に2つのウィンドウに分かれてしまうことがあります。

この問題はMac OS Xのだいぶ前のバージョンからあって、ずっとプレビュー.appのバグなんだと思っていました。しかし、どうやらそうではないようです。自作のプログラムでも似たような現象が発生しました。

調べてみると、 NSApplicationDelegate の -application:openFiles: (OpenFileではなくopenFilesのほう)を使っていても、これが2回(2回以上もある?)呼ばれているようです。

この現象が発生しても、例えばファイルを1つ1つのウィンドウに開いていくだけのプログラムなら特に問題になりません。順々に全ファイルを処理すれば良いからです。しかし、前述のプレビューのように、開いたファイルを1組として、何らかの処理を行いたい場合には問題となります。

私の今回のプログラムでは、ドラッグ&ドロップで開かれたらアラートボックスを出してユーザーに確認し、OKされたら処理を行い、終わったらまたアラートで報告するという単純なものでした。この現象が出ると、この確認→処理→報告が2回に分かれてしまうのです。実害はなくとも、非常に格好の悪い不具合です。

おそらくOSかFinderの問題だと思うのですが、ずっと修正されないままというのが疑問です。他に何かあるのでしょうか? まあ、アプリ側の工夫で回避することも可能ですが、ちょっと泥臭くなって面倒ですね。



コメント

よろしければコメントしてください。

※メールアドレス以外の項目はこのページ上に公開されます。個人情報などの入力にはご注意ください。




保存しますか?


「投稿」ボタンを押してから書き込み完了までに多少時間がかかる場合があります。ご了承ください。