gpt4 book ai didi

objective-c - 如何使主窗口在 Cocoa 中可见?

转载 作者:行者123 更新时间:2023-12-03 16:49:22 25 4
gpt4 key购买 nike

这是 this question 的后续内容。我有以下代码:

- (BOOL)applicationShouldHandleReopen:(NSApplication *)app hasVisibleWindows:(BOOL)flag {
NSLog(@"Has visible windows: %d, main window visible: %d", flag, [[app mainWindow] isVisible]);
if (!flag) {
// I need to make mainWindow visible again here. HOW???
// I tried the following but it has no effect.
// [[app mainWindow] makeKeyAndOrderFront:self];
return NO;
} else {
return YES;
}
}

有 [window isVisible] 消息可以用来查询,但没有相应的 setVisible 或“show”...

最佳答案

首先,Cocoa 中的“主窗口”并不像我想的那样。 The “main window” is the window that is active 。如果您没有订购任何窗口,则没有窗口是主窗口,并且 mainWindow 将返回 nil;如果一个窗口是事件的,那么它是主窗口,但它不是一个被排序的窗口(如果是,它就不能是事件的)。

因此,您需要为您认为是主窗口的窗口创建一个导出。

isVisible 将告诉您该窗口是否已排序。如果它已排序(isVisible 返回 NO),您将需要订购它。

当然,您不能只是按顺序排序,因为这不会指定您希望它具有的顺序。所以,您想将其订购前面

但是,如果它没有用户焦点,也就是说,如果它不是,那么将其设置为最前面的窗口就没有多大意义。因此,您希望将其设为关键将其放在前面。

您将发送给它的消息是makeKeyAndOrderFront:。使其成为关键也将使其成为主要。

关于objective-c - 如何使主窗口在 Cocoa 中可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563620/

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