我得到一个CGWindows列表,CGWindowListCreate如下所示:
CFArrayRef windows = CGWindowListCreate(kCGWindowListOptionOnScreenOnly, 0);
Run Code Online (Sandbox Code Playgroud)
有没有办法知道NSScreen每个窗口在哪个窗口?我试图查看窗口边界和屏幕框架的交集,但如果一个窗口部分离开屏幕,它可以与另一个屏幕的框架相交。
有没有更可靠的方法来做到这一点?
该CGWindowLevel.h文件定义了用于设置窗口级别的常量,可以用作窗口级别的最大值为20。但是,如果使用调用检索窗口列表CGWindowListCopyWindowInfo,则可以观察到的值kCGWindowLayer大于20 (25、103 等)。
kCGWindowLayer 和窗口级别不一样吗?如果它们不相同,我如何获得使用 获得的窗口的窗口级别CGWindowListCopyWindowInfo?如果它们相同,为什么我们得到的值 >20?
我有一个窗口的 CGWindowID 和我的 Mac 的所有 CGDirectDisplayID。然后我想知道哪个显示窗口。我尝试获取窗口的 CGWindowInfo?但找不到有用的信息。
CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionIncludingWindow, windowID);
CFArrayApplyFunction(windowList, CFRangeMake(0, CFArrayGetCount(windowList)), &WindowListApplierFunction, this);
CFRelease(windowList);
Run Code Online (Sandbox Code Playgroud)