gpt4 book ai didi

cocoa - 如何使用菜单栏在屏幕上打开 NSWindow

转载 作者:行者123 更新时间:2023-12-03 16:41:37 24 4
gpt4 key购买 nike

我看过关于如何将窗口移动到不同 NSScreen 的帖子,但这并不完全是我正在寻找的(并且我不确定答案实际上是否是在任何情况下执行此操作的正确方法) )。

当我调用 makeKeyAndOrderFront 时,我希望窗口与菜单栏一起显示在屏幕上 - 因为它是一个“关于”窗口,这意味着用户必须选择“关于”菜单项(该窗口不可移动)和指针就会在那里。当然,默认行为是让窗口显示在具有关键焦点的屏幕上。

现在,我可以根据 [[NSScreen Screens] objectAtIndex:0] 计算它的框架矩形,这显然是带有菜单栏的窗口。但是 1) 这看起来像是一个 hack,应该非常简单,2) 不确定这是否适用于菜单栏会移动的 Mavericks。

我是否遗漏了一些基本的东西?因为看起来确实如此。

最佳答案

由于您确定该窗口将由鼠标操作创建,因此您可以找到包含鼠标指针的屏幕,而不是寻找菜单栏:

NSScreen * mouseScreen = nil;
NSPoint mousePoint = [NSEvent mouseLocation];
for( NSScreen * screen in [NSScreen screens] ){
if( NSMouseInRect(mousePoint, [screen frame], NO) ){
mouseScreen = screen;
break;
}
}

关于cocoa - 如何使用菜单栏在屏幕上打开 NSWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17887399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com