当前位置:  开发笔记 > IOS > 正文

Cocoa:隐藏一个应用程序

如何解决《Cocoa:隐藏一个应用程序》经验,为你挑选了2个好方法。

是否可以使用可可隐藏一个特定的应用程序?

我知道您可以使用以下代码隐藏所有其他应用程序

[[NSWorkspace sharedWorkspace] performSelectorOnMainThread:@selector(hideOtherApplications) withObject:NULL waitUntilDone:NO];

但是有可能隐藏一个特定的应用程序,例如Safari吗?



1> hasseg..:

如果您的目标是Mac OS 10.6+,则可以使用新NSRunningApplication类:

- (BOOL) hideAppWithBundleID:(NSString *)bundleID
{
    NSArray *apps = [NSRunningApplication runningApplicationsWithBundleIdentifier:bundleID];
    if ([apps count] == 0)
        return NO;
    return [(NSRunningApplication *)[apps objectAtIndex:0] hide];
}



2> cobbal..:

你可以用applescript做到这一点:

tell application "System Events" to set visible of process "Safari" to false

或通过调用以下内容从cocoa中调用相同的applescript:

NSString * source = @"tell application \"System Events\" to set visible of process \"Safari\" to false";
NSAppleScript * script = [[NSAppleScript alloc] initWithSource:source];
[script executeAndReturnError:nil];
[script release];


请注意,虽然这可能适用于Safari,但您不希望为其他应用程序对其进行硬编码,因为其进程名称可能已本地化以符合用户的首选项
推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有