0

我正在为 Mac OS 编写一个小型 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

尝试在您的窗口上调用 -[NSWindow display] ,这将强制它立即显示。

于 2011-07-25T23:41:11.507 回答
0

只需将一个对象委托为窗口,然后在委托中调用NSWindowDelegate一次截图即可。windowDidBecomeKey:

于 2011-07-26T04:16:03.327 回答