Xcode Mac OS X Dock:如何通过应用程序';s主图标,而不是最小化图标?

Xcode Mac OS X Dock:如何通过应用程序';s主图标,而不是最小化图标?,xcode,macos,cocoa,dock,Xcode,Macos,Cocoa,Dock,根据Mac Dock的说法:“Dock将应用程序放在左侧,而堆栈和最小化窗口则放在右侧。如果你仔细观察,你会看到一条垂直分隔线将它们分隔开来。” 这意味着,一旦应用程序最小化,您在右侧有一个新的停靠图标,您需要单击它以最大化您的应用程序 然而,像Chrome和Finder这样的应用程序表现不同:如果你点击左边的图标(“主”应用程序的图标),它也会使应用程序最大化 我已经创建了我自己的mac应用程序,我想让它表现得像Chrome:这意味着一旦它最小化,如果你点击左边或右边的dock图标,它就会最大

根据Mac Dock的说法:“Dock将应用程序放在左侧,而堆栈和最小化窗口则放在右侧。如果你仔细观察,你会看到一条垂直分隔线将它们分隔开来。”

这意味着,一旦应用程序最小化,您在右侧有一个新的停靠图标,您需要单击它以最大化您的应用程序

然而,像Chrome和Finder这样的应用程序表现不同:如果你点击左边的图标(“主”应用程序的图标),它也会使应用程序最大化

我已经创建了我自己的mac应用程序,我想让它表现得像Chrome:这意味着一旦它最小化,如果你点击左边或右边的dock图标,它就会最大化。如何以编程方式执行该操作

[我正在附加一个dock屏幕截图。你可以看到旁边的Chrome“main”图标和“minimized”图标。这两个图标都会响应并最大化窗口。 然而,其他应用程序(如TextEdit,以及我在XCode中编程的应用程序):只有最小化图标可以最大化它们。“主”图标不起任何作用。]

如何以编程方式使两个图标最大化我的应用程序

万分感谢


Nili

单击Dock图标调用:

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag
在此消息处理程序中重新打开窗口


它被发送给应用程序代理,并且是
nsapplicationedelegate
协议的一部分。

需要实现applicationShouldHandleReopen,以便从“main”图标打开最小化的窗口


当点击“主”图标时,这两种方法都不会被调用:-(很抱歉,粘贴了不正确的方法。下面的答案应该会更有用。您是否使用“最大化”作为“最小化”的对立面?因为它们实际上不是对立面。最大化会更改窗口的大小。(另外,请注意不要将应用程序与windows混为一谈:您可以最小化和/或最大化windows;您不能对应用程序执行任何操作。)
- (BOOL)applicationShouldHandleReopen:(NSApplication *) __unused theApplication hasVisibleWindows:(BOOL)flag
{
    if (!flag){
        [[self window] makeKeyAndOrderFront:self];
    }
    return YES;
}