Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
Objective c 重新显示我的主应用程序窗口_Objective C_Macos_Cocoa_Nswindow - Fatal编程技术网

Objective c 重新显示我的主应用程序窗口

Objective c 重新显示我的主应用程序窗口,objective-c,macos,cocoa,nswindow,Objective C,Macos,Cocoa,Nswindow,好吧,尽管这看起来很简单和愚蠢,但这是我的设想: 应用程序窗口(只有一个主窗口)最小化 用户单击dock菜单上的某些内容 我们想把主窗口带回来 简单 不完全是 我已尝试通过以下方式访问我的主窗口: [[NSApplication sharedApplication]主窗口] [[NSApplication sharedApplication]windows] 然后发送一条MakeKeyandDerfront:消息,但它根本没有显示出来 我甚至试过显示所有的窗口(是的,它仍然会显示为“窗口

好吧,尽管这看起来很简单和愚蠢,但这是我的设想:

  • 应用程序窗口(只有一个主窗口)最小化
  • 用户单击dock菜单上的某些内容
  • 我们想把主窗口带回来
简单

不完全是

我已尝试通过以下方式访问我的主窗口:

  • [[NSApplication sharedApplication]主窗口]
  • [[NSApplication sharedApplication]windows]
然后发送一条
MakeKeyandDerfront:
消息,但它根本没有显示出来

我甚至试过显示所有的窗口(是的,它仍然会显示为“窗口”我正在使用的一个或两个(隐藏的)表…),但仍然没有

你能建议一个方法吗,我最终可以展示那个窗口,而不必在任何地方设置插座


我不知道;我可能太累了,没有注意到,但这件事几乎让我神经崩溃…

你可以像这样取消最小化窗口:

if([aWindow isMiniaturized])
{
   [aWindow deminiaturize:self];
}
但是,问题是当窗口最小化时,它将丢失主状态,因此您需要一些其他方法来标识窗口

你为什么不能用插座呢

您可以使应用程序取消最小化其所有最小化窗口,如下所示:

for(NSWindow* win in [NSApp windows])
{
    if([win isMiniaturized])
    {
        [win deminiaturize:self];
    }
}

当应用程序启动时,您可以存储对主窗口的引用,并注册
nsWindowDidMinimizeNotification
。这将告诉您主窗口何时最小化,这可能也会对您有所帮助。

好吧,我正在处理一个相当大的项目(比如100000行代码,甚至更多),尽管代码几乎已清理完毕,但界面仍然存在一些问题;(有些情况实际上没有得到适当的释放——这至少是我的责任所在)。然而,您的最后一个技巧(在窗口中循环,只需将
小型化
就行了)。(我知道它并不完美;但这是一个你确实需要看到一些工作并向前推进的时刻(尽管我很可能会在某个时候回来完善它))。非常感谢!:-)我为此浪费了太多时间,终于找到了解决办法。谢谢你,罗布·凯尼格