- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
- (void) GetClientRect
NSArray *screenArray = [NSScreen screens];
NSScreen *mainScreen = [NSScreen mainScreen];
unsigned screenCount = [screenArray count];
unsigned index = 0;
for (index; index < screenCount; index++)
{
NSScreen *screen = [screenArray objectAtIndex: index];
NSRect screenRect = [screen visibleFrame];
NSString *mString = ((mainScreen == screen) ? @"Main" : @"not-main");
NSLog(@"Screen #%d (%@) Frame: %@", index, mString, NSStringFromRect(screenRect));
}
}
以上方法用于获取主屏幕的框架。但我想要返回已传递 kCGWindowNumber 的 NSWindow 屏幕大小的方法。有什么想法吗?!
最佳答案
您为什么要与 CGWindowID
合作(我猜你所说的 kCGWindowNumber
就是这个意思)?在大多数情况下,这是非常不自然的事情。
无论如何,您可以调用CGWindowListCopyWindowInfo(0, theWindowID)
并检查返回数组的第一个元素中的字典。使用 key kCGWindowBounds
获取边界矩形的字典表示,然后 CGRectMakeWithDictionaryRepresentation()
将其转换为 CGRect
.
您是否正在寻找如何转换 NSWindow
-frame
,Cocoa 坐标系中的 到 Core Graphics 坐标系? Cocoa 坐标系的原点位于主显示屏的左下角,Y 沿上方向递增。 Core Graphics 坐标系的原点位于主显示屏的左上角,Y 沿向下方向递增。
因此,转换如下所示:
NSWindow* window = /* ... comes from wherever ... */;
NSRect frame = window.frame;
frame.origin.y = NSMaxY([NSScreen.screens.firstObject frame]) - NSMaxY(frame);
CGRect cgbounds = NSRectToCGRect(frame);
关于macos - 如何从 kCGWindowNumber 获取 NSWindow 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20520902/
- (void) GetClientRect NSArray *screenArray = [NSScreen screens]; NSScreen *mainScreen = [NS
如何从 kCGWindowNumber 获取 NSWindow ref。我尝试使用: [NSApp windowWithWindowNumber:windowNumber] 但我总是得到一个空值。我需
我是一名优秀的程序员,十分优秀!