我很确定答案一定很简单,但由于某种原因我无法让它发挥作用!
我有一个窗口,这段代码:
[someWindow setHidesOnDeactivate:YES];
我有一个状态项和以下代码
- (void)openWindow{
if ([someWindow isVisible]) {
NSLog(@"CLOSING");
[lyricWindow close];
}else {
[someWindow makeKeyAndOrderFront:nil];
NSLog(@"SHOWING");
}
}
当我关闭窗口并想再次打开它时,这有效。现在我已经实现了停用的隐藏功能,我不知道我需要做什么!我尝试了各种方法...我希望窗口再次显示,并且当我单击状态项时窗口变为事件状态!我想这就是我的问题。
如何在单击状态项时使窗口处于事件状态?
我在日志中得到以下内容:
CLOSING SHOWING CLOSING SHOWING
无论窗口是否隐藏,都会先关闭,这很有趣,因为 id 猜测如果窗口已隐藏,isVisible
将返回 false
。无论如何,我没有 window 。我怎样才能取消隐藏窗口?
谢谢!
最佳答案
我遇到了同样的问题,在窗口被停用后无法重新显示。就我而言,当按下 NSStatusItem 时,我显示了 NSPanel(NSWindow 的子类)。
以下代码终于让我的 NSPanel 重新显示:
[NSApp arrangeInFront:sender];
[myWindow makeKeyAndOrderFront:sender];
[NSApp activateIgnoringOtherApps:YES];
我很确定“activateIgnoringOtherApps”是这里的关键。对我来说,这并不理想,因为它分散了用户当前应用程序的注意力。
关于objective-c - 取消隐藏由 setHidesOnDeactivate 隐藏的 NSwindow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6165245/