gpt4 book ai didi

cocoa - 尝试将 NSWindow 设为 keyWindow 时的计时问题

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

我通过调用显示我的主窗口

[window makeKeyAndOrderFront:self];
[NSApp activateIgnoringOtherApps:YES];
[window setIsVisible:YES];
[window display];

它可以工作,但不会在调用后立即将窗口设置为关键窗口。我必须等待“一段时间”,直到 [NSApp keyWindow] 返回实际的窗口

我现在想知道,这需要多长时间以及如何强制窗口立即成为关键窗口?

最佳答案

我认为 makeKeyAndOrderFront 不是同步调用可能有充分的理由,即可能涉及 NSApplication 需要注意的多个窗口和对象的协调的方法来实现这一点,因此 Cocoa 可能不支持强制窗口立即成为关键。然而,这可能不是问题,具体取决于您试图解决的问题。

现在,我的猜测是,您的某些方法依赖于窗口作为关键,而目前它们没有正确发生,因为窗口不会立即成为关键。但是,您可以实现 NSWindowDelegate 协议(protocol),将自己设置为窗口委托(delegate),并重写 - (void)windowDidBecomeKey:(NSNotification *)notification 方法来查明窗口何时执行成为关键。这也应该是一个全局通知,以防更适合您。

有关更多详细信息,请查看 Apple 文档:http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSWindowDelegate_Protocol/Reference/Reference.html

关于cocoa - 尝试将 NSWindow 设为 keyWindow 时的计时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8824284/

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