首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当键盘/鼠标焦点转到其他监视器时NSScreen主屏幕不更新?

当键盘/鼠标焦点转到其他监视器时NSScreen主屏幕不更新?
EN

Stack Overflow用户
提问于 2012-02-25 00:30:06
回答 2查看 1.1K关注 0票数 9

我有一个全球应用程序,报告有关当前文本框的信息。我已经设置好了,所以每次点击鼠标,我就运行:

代码语言:javascript
复制
NSLog(@"Screen:%f,%f", [[NSScreen mainScreen] frame].size.width, [[NSScreen mainScreen] frame].size.height);

但是,当我将键盘焦点放在一个屏幕上的文本框中,然后单击该文本框中的鼠标(重复),[[NSScreen mainScreen] frame]通常会报告错误的屏幕尺寸!它给了我另一个显示器的尺寸。

苹果公司的文档上说:

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSScreen_Class/Reference/Reference.html

主屏幕不一定与包含菜单栏的屏幕相同,或者其原点为(0,0)。主屏幕是指包含当前正在接收键盘事件的窗口的屏幕。它是主屏幕,因为它是最有可能与用户交互的屏幕。

这说明带有键盘焦点的屏幕总是主屏幕。我给它键盘焦点和鼠标焦点。那么为什么我会有50%的时间得到另一个屏幕呢?

这是NSScreen mainScreen中的一个bug吗?我一定要强制重新计算吗?还有其他方法来获取具有键盘焦点的显示器的尺寸吗?

EN

回答 2

Stack Overflow用户

发布于 2012-02-25 09:33:29

这句话说,键盘焦点的屏幕总是主屏幕。我给它键盘焦点和鼠标焦点。那么为什么我会有50%的时间得到另一个屏幕呢?

我知道这是nit选择,但从技术上讲,主屏幕是包含具有关键焦点的窗口的屏幕。因此,如果一个窗口跨越两个屏幕,其中有一个文本字段,而窗口的原点在屏幕1上,但是文本字段位于屏幕2上的窗口上,文本字段是聚焦的,主屏幕仍然是屏幕1。

票数 7
EN

Stack Overflow用户

发布于 2012-03-26 19:29:29

要获得包含鼠标的屏幕:

http://www.cocoabuilder.com/archive/cocoa/104529-current-mouse-screen.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9439992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档