如果我得到如下的CGWindowID(_windowID)......
NSArray *windowList = (__bridge NSArray *)CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
for (NSDictionary *info in windowList) {
if ([[info objectForKey:(NSString *)kCGWindowOwnerName] isEqualToString:@"window name"] && ![[info objectForKey:(NSString *)kCGWindowName] isEqualToString:@""]) {
_windowID = [[info objectForKey:(NSString *)kCGWindowNumber] unsignedIntValue];
}
}
如何正确测试窗口ID仍然有效且窗口尚未关闭?我只是运行类似的代码只检查窗口ID存在吗?
提前致谢
答案 0 :(得分:0)
kCGWindowListOptionOnScreenOnly
常量的文档说:
列出当前屏幕上的所有窗口。 Windows将返回 从前到后订购。使用此选项检索列表时, relativeToWindow参数应设置为kCGNullWindowID。
所以Windows肯定会出现在屏幕上,因为在调用CGWindowListCopyWindowInfo
和你对它的行动之间似乎没有发生任何事情。
也许您想要测试以确保它们不被隐藏或最小化?