相关疑难解决方法(0)

当 CGWindow 部分离屏时,如何判断 CGWindow 显示在哪个屏幕上?

我得到一个CGWindows列表,CGWindowListCreate如下所示:

CFArrayRef windows = CGWindowListCreate(kCGWindowListOptionOnScreenOnly, 0);
Run Code Online (Sandbox Code Playgroud)

有没有办法知道NSScreen每个窗口在哪个窗口?我试图查看窗口边界和屏幕框架的交集,但如果一个窗口部分离开屏幕,它可以与另一个屏幕的框架相交。

有没有更可靠的方法来做到这一点?

macos window screen core-graphics

10
推荐指数
0
解决办法
586
查看次数

CGWindowListCopyWindowInfo、kCGWindowLayer 和窗口级别

CGWindowLevel.h文件定义了用于设置窗口级别的常量,可以用作窗口级别的最大值为20。但是,如果使用调用检索窗口列表CGWindowListCopyWindowInfo,则可以观察到的值kCGWindowLayer大于20 (25、103 等)。

kCGWindowLayer 和窗口级别不一样吗?如果它们不相同,我如何获得使用 获得的窗口的窗口级别CGWindowListCopyWindowInfo?如果它们相同,为什么我们得到的值 >20?

macos window layer quartz-graphics

5
推荐指数
2
解决办法
3169
查看次数

确定窗口在 macOS 中的哪个显示

我有一个窗口的 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)

macos objective-c

3
推荐指数
1
解决办法
861
查看次数