0

私はMacOS用の小さなCocoaアプリケーションを書いています。私の目標は、ウィンドウを表示してから、画面上のピクセルを読み取ることです。後半の方法はすでに知っていますが、先に進む前にウィンドウを表示するのに問題があります。私が見たところ、NSWindowのmakeKeyAndOrderFrontによってトリガーされるようなウィンドウの更新は延期されています。

私はまだCocoaに比較的慣れていませんが、基本的に次のようなことをしたいと思っています。

[myWindow makeKeyAndOrderFront:self];
// application blocks right here until the window is actually shown
...

では、どうすればそのブロッキング操作を実行できますか?

4

3 に答える 3

1

おそらく、画面ではなくウィンドウからピクセルを取得できますか?Mac OS Xでは、(ほぼ)すべてのウィンドウに、表示されているかどうかに関係なく、独自のバッファ(バッキングストア)があります。これにより、ウィンドウが配置されている画面の領域を覆い隠すシステムダイアログがある場合でも、テストが確実に機能するようになります。

于 2011-07-26T04:30:26.947 に答える
0

ウィンドウで-[NSWindowdisplay]を呼び出してみてください。これにより、ウィンドウがすぐに表示されます。

于 2011-07-25T23:41:11.507 に答える
0

オブジェクトをウィンドウとして委任し、委任で呼び出されNSWindowDelegateたらスクリーンショットを撮るだけです。windowDidBecomeKey:

于 2011-07-26T04:16:03.327 に答える