如何以最小化模式以编程方式启动OSX应用程序?

时间:2013-08-27 10:48:39

标签: objective-c xcode macos cocoa

我需要在启动时启动我的应用程序,但我希望它“最小化”,这意味着它将在Dock中打开,但它的窗口将不会显示。

与TeamViewer相同,如果你知道这个应用程序。

我目前使用的是带有plist的launchctl,我已经添加到了~Store \ LaunchAgent中,实际上在启动时启动了应用程序,并显示了它的窗口。

如何以“隐藏”\“最小化”状态启动它?

3 个答案:

答案 0 :(得分:5)

取消选中启动时在xib中为主应用程序窗口显示。

enter image description here

在您的app delegate类中实施- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag

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

答案 1 :(得分:0)

以下行将帮助您实现

[[自我窗口]小型化:自我];

答案 2 :(得分:0)

最小化..我想你想把它作为HIDDEN启动

参见NSWorkspace的:

- (BOOL)launchAppWithBundleIdentifier:(NSString *)bundleIdentifier options:(NSWorkspaceLaunchOptions)options additionalEventParamDescriptor:(NSAppleEventDescriptor *)descriptor launchIdentifier:(NSNumber **)identifier

使用它从其他应用启动应用并传递选项NSWorkspaceLaunchAndHide


如果您想知道如何让应用程序显示停靠图标:

在你的plist中定义LSUIElement = YES