Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 尝试使NSWindow成为keyWindow时出现计时问题_Cocoa_Nswindow - Fatal编程技术网

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*)通知
方法,以查明窗口何时变为键。这也应该是一个全局通知,以防更好地为您服务

有关更多详细信息,请访问苹果文档