6

バックグラウンド

-beginWithCompletionHandler:NSOpenPanel を呼び出すと、使用者が開くボタンを押してから約 1 秒後にユーザー インターフェイスが処理されます。

2 つのメッセージ エラー メッセージが出力されます。

*警告: クラス NSWindow のメソッド userSpaceScaleFactor は、10.7 以降では非推奨です。新しいアプリケーションでは使用しないでください。代わりに convertRectToBacking: を使用してください。

と、

WindowServer[90]: CGXDisableUpdate: UI の更新は、アプリケーション「OpenPanelTest」によって 1.00 秒以上強制的に無効にされました。サーバーはそれらを再度有効にしました。

解決策は、代わりにモーダル ウィンドウを実行することのようです (ただし、これは実際には一般的な解決策ではありません!) -beginSheetModalForWindow: completionHandler:、警告 'userSpaceScaleFactor...' が出力され、ユーザー インターフェイスがハングしなくなりました。

私の質問

これはバグですか、それとも何か間違ったことをしているのですか、それとも Xcode の設定が間違っていますか? サンドボックスが有効になっておらず、コード署名も有効になっていません。これは、プレーンなアプリケーションとドキュメントベースのアプリケーションの両方で同じように動作します。Appleに提出することをお勧めしますか? ほとんどすべてのアプリで Open Panels が使用されているため、Google がこれについて事実上何も見つけていないのは奇妙だと思います。

アップデート

サンプル コードは github ( https://github.com/danieljfarrell/AppTest-NSOpenPanel ) で入手できます。

4

0 に答える 0