objective-c - 取消隐藏由 setHidesOnDeactivate 隐藏的 NSwindow?

标签 objective-c xcode cocoa nswindow

我很确定答案一定很简单,但由于某种原因我无法让它发挥作用!

我有一个窗口,这段代码:

[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/

相关文章:

ios - 使用指针设置属性而不是发送对象消息

iOS 本地化图像未显示

objective-c - 如何在 Cocoa 中将 Finder Sync Extensions 与 Xcode 集成

objective-c - 当父级折叠时,NSOutlineView ParentForItem 返回 nil

ios - 关闭模态视图 Controller 呈现的 UIAlertController

objective-c - 自动将 View 放置在下一个逻辑位置(如布局管理器)

ios - Swift:imageWithData 不可用

xcode - 在 Mac 应用程序中实现深色主题窗口

ios - 条件绑定(bind)的初始化程序必须具有 Optional 类型,而不是 'NSManagedObjectContext

objective-c - 有没有一种简单的方法来更改 NSTableView 的字体大小?