Mac OS X Dock:如何使用应用程序的主图标以编程方式最大化我的应用程序,而不是最小化图标?

时间:2013-09-22 08:38:53

标签: xcode macos cocoa dock

根据Mac Dock documentation:“Dock将应用程序保留在其左侧,而Stacks和最小化的窗口保持在其右侧。如果仔细观察,您会看到一条垂直分隔线将它们分开。“

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

但是,Chrome和Finder等应用程序的行为有所不同:如果单击LEFT图标(“主”应用程序的图标),它也会最大化应用程序!

我已经创建了自己的mac应用程序,并且我希望它的行为类似于Chrome:这意味着一旦它被最小化,如果您点击左侧或右侧停靠栏图标,它将最大化。我怎样才能以编程方式

[我正在附上一个码头截图。您可以在旁边看到Chrome“主”图标和“最小化”图标。两个图标都会响应并最大化窗口。 attaching 然而,其他应用程序(如TextEdit,以及我在XCode中编程的应用程序):只有最小化的图标才能最大化它们。 “主要”图标不执行任何操作。]

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

万分感谢!

尼里

2 个答案:

答案 0 :(得分:2)

需要实现applicationShouldHandleReopen才能从“主”图标打开最小化的窗口

- (BOOL)applicationShouldHandleReopen:(NSApplication *) __unused theApplication hasVisibleWindows:(BOOL)flag
{
    if (!flag){
        [[self window] makeKeyAndOrderFront:self];
    }
    return YES;
}

答案 1 :(得分:0)

点击Dock图标调用:

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag

在此邮件处理程序中重新打开您的窗口。

它发送给应用程序代表,是NSApplicationDelegate协议的一部分。