取消隐藏NSwindow由setHidesOnDeactivate隐藏?
问题描述:
林相当肯定答案一定很容易,但由于某种原因,我不能得到它的工作!取消隐藏NSwindow由setHidesOnDeactivate隐藏?
我有一个窗口,该代码:
[someWindow setHidesOnDeactivate:YES];
我有一个状态项,然后将以下代码
- (void)openWindow{
if ([someWindow isVisible]) {
NSLog(@"CLOSING");
[lyricWindow close];
}else {
[someWindow makeKeyAndOrderFront:nil];
NSLog(@"SHOWING");
}
}
当我关闭了窗口,并想再次打开这个工作。现在我已经实现了停用的隐藏功能,我失去了我需要做的事情!我已经尝试了各种各样的事情......我想要再次显示窗口,并且在单击状态项时窗口变为活动状态!我认为那是我的问题。
当我点击状态项目时,如何使窗口处于活动状态?
我得到的日志中的以下内容:
闭幕SHOWING闭幕SHOWING
闭先不管,如果窗口被隐藏或不,这是相当有趣的,因为ID猜测isVisible
会如果窗口已隐藏,则返回false
。总之,我没有窗户。我怎样才能取消隐藏窗口?
谢谢!
答
我有同样的问题,我无法获得一个窗口后,它是隐藏的停用后重新显示。就我而言,当NSStatusItem被按下时,我显示了一个NSPanel(NSWindow的子类)。
下面的代码终于得到了我的NSPanel重新露面:
[NSApp arrangeInFront:sender];
[myWindow makeKeyAndOrderFront:sender];
[NSApp activateIgnoringOtherApps:YES];
我敢肯定“activateIgnoringOtherApps”是这里的关键。对我而言,这并不理想,因为它将注意力从用户当前的应用程序中解放出来。
谢谢!奇妙的作品。 – 2011-07-02 21:30:06
'[NSApp unhide];'似乎是'[NSApp activateIgnoringOtherApps:YES]'所调用的关键;',因此您可以安全地替换它。 – gwdp 2013-03-01 03:20:09
对于这个答案,'[NSApp unhideWithoutActivation]'会更合适吗? – sam 2016-07-22 23:48:01