Cocoa 尝试使NSWindow成为keyWindow时出现计时问题
我通过呼叫显示我的主窗口Cocoa 尝试使NSWindow成为keyWindow时出现计时问题,cocoa,nswindow,Cocoa,Nswindow,我通过呼叫显示我的主窗口 [window makeKeyAndOrderFront:self]; [NSApp activateIgnoringOtherApps:YES]; [window setIsVisible:YES]; [window display]; 它可以工作,但不会在调用后立即将窗口设置为关键点窗口。我必须等待“一段时间”,直到[NSApp keyWindow]返回实际的窗口 我现在想知道,这需要多长时间,我如何强制一个窗口立即成为关键窗口?我认为有很好的理由说明MakeKe
[window makeKeyAndOrderFront:self];
[NSApp activateIgnoringOtherApps:YES];
[window setIsVisible:YES];
[window display];
它可以工作,但不会在调用后立即将窗口设置为关键点窗口。我必须等待“一段时间”,直到[NSApp keyWindow]
返回实际的窗口
我现在想知道,这需要多长时间,我如何强制一个窗口立即成为关键窗口?我认为有很好的理由说明MakeKeyandDerfront
不是同步调用,也就是说,可能涉及多个窗口和对象的协调,NSApplication
需要注意才能实现,因此Cocoa可能不支持强制窗口立即变为键。但是,这可能不是问题,取决于您试图解决的问题
现在,我猜想您的一些方法依赖于窗口是键,而目前它们没有正确发生,因为窗口没有立即变成键。但是,您可以实现NSWindowDelegate
协议,将自己设置为窗口代理,并覆盖-(void)windowDidBecomeKey:(NSNotification*)通知
方法,以查明窗口何时变为键。这也应该是一个全局通知,以防更好地为您服务
有关更多详细信息,请访问苹果文档