Mac:以编程方式从应用程序B中取消最小化应用程序A.

时间:2014-03-20 15:33:52

标签: macos cocoa

这可能吗?或者从安全的角度来看这是否被阻止?

我的目标是取消当前从我自己的应用程序中最小化的任何第三方应用程序。当然,这应该适用于任何最小化的窗口。

2 个答案:

答案 0 :(得分:1)

假设您的意思是隐藏/显示应用程序,正如uchuugaka所说,Applescript可能是最简单,最直接的方式。这里有an existing question with two solutions,1)用于将Applescript文件嵌入到您的应用程序中,或2)实际将代码嵌入到Cocoa / Objective-C中。

我喜欢后来的自己(使用NSAppleScript),因为这是一件非常简单的事情。

NSAppleScript *run = [[NSAppleScript alloc] initWithSource:@"tell application \"System Events\" to tell process \"Safari\" to set visible to true"];
[run executeAndReturnError:nil];
[run release];

将true更改为false将相应地隐藏应用程序。

答案 1 :(得分:1)

您不需要使用AppleScript:

for (NSRunningApplication* app in [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.apple.Safari"])
    [app unhide];

除了取消隐藏之外,如果要激活它,请使用-activateWithOptions:代替-unhide