根据Mac Dock documentation:“Dock将应用程序保留在其左侧,而Stacks和最小化的窗口保持在其右侧。如果仔细观察,您会看到一条垂直分隔线将它们分开。“
意思是,一旦应用程序最小化,您在右侧有一个新的停靠图标,您需要单击它以最大化您的应用程序。
但是,Chrome和Finder等应用程序的行为有所不同:如果单击LEFT图标(“主”应用程序的图标),它也会最大化应用程序!
我已经创建了自己的mac应用程序,并且我希望它的行为类似于Chrome:这意味着一旦它被最小化,如果您点击左侧或右侧停靠栏图标,它将最大化。我怎样才能以编程方式?
[我正在附上一个码头截图。您可以在旁边看到Chrome“主”图标和“最小化”图标。两个图标都会响应并最大化窗口。 然而,其他应用程序(如TextEdit,以及我在XCode中编程的应用程序):只有最小化的图标才能最大化它们。 “主要”图标不执行任何操作。]
如何让两个图标以编程方式最大化我的应用程序?
万分感谢!
尼里
答案 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
协议的一部分。