cocoa - 同步调用 NSWindow makeKeyAndOrderFront

标签 cocoa macos nswindow nsrunloop

我正在为 Mac OS 编写一个小型 Cocoa 应用程序,我的目标是显示一个窗口,然后读取屏幕上的像素。我已经知道如何执行后一部分,但在继续之前无法显示窗口。据我所知,窗口更新(例如由 NSWindow 的 makeKeyAndOrderFront 触发的窗口更新)被推迟了。

我对 Cocoa 还比较陌生,但我基本上想做这样的事情:

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

那么我如何才能实现阻塞操作呢?

最佳答案

也许您可以从窗口而不是屏幕获取像素?在 Mac OS X 上,(几乎)每个窗口都有自己的缓冲区(后备存储),无论它是否可见。即使系统对话框遮挡了窗口所在的屏幕区域,这也将确保您的测试能够正常工作。

关于cocoa - 同步调用 NSWindow makeKeyAndOrderFront,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822883/

相关文章:

objective-c - 引用 Xcode 编译的 Cocoa 应用程序包的子文件夹中的 nib 文件

macos - PNG 图像可以包含多个页面吗?

cocoa - 带有圆角的自定义 NSWindow 可以剪辑 subview

macos - 如何从 kCGWindowNumber 获取 NSWindow 大小?

objective-c - NSPredicate 和简单的正则表达式问题

objective-c - macOS NSDistributedNotification : fprint or NSLog value of a specific key in userInfo?

objective-c - NSSlider NSSliderCell 裁剪自定义旋钮

macos - 在Mac OSX上用Electron一个覆盖NWJS应用

python - 无法在 Mac OS X 上安装 matplotlib

cocoa - 实现首选项 NSWindow