将其他正在运行的应用程序的窗口置于最前面

时间:2019-02-13 15:07:25

标签: objective-c swift macos cocoa

我要实现的目标:当用户在我的应用程序中按“购买”时,“应用程序商店”窗口应出现,其中包含我的应用程序URL。

当App Store 未运行时,此方法工作正常:[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"macappstore://..."]];

但是,当App Store 已经运行并且在扩展坞中最小化时,它的窗口不会显示。启用,是的,但是没有出现窗口。

我已经尝试过的方法:使用NSRunningApplication抓取了应用程序,并尝试unhideactivateWithOptions:,但这是行不通的。

NSWorkspaceNSRunningApplication中看不到更多选项,因此,如果有人对此有一些解决方案,将不胜感激。

2 个答案:

答案 0 :(得分:1)

嗯,我想不出任何不涉及Applescript或Accessibility API的方法,这些方法然后要求用户授予您的应用程序访问权限,这甚至更糟。 (我的意思是,您可以退出并重新启动App Store,但这很刺耳。)老实说,这是App Store中的不良行为,因此您应该向Apple提交报告,注意窗口不在最前面。不过,它现在对您没有帮助。

答案 1 :(得分:0)

但是,即使最小化了,这也不会把它带到前面吗?

NSWorkspace.shared.launchApplication("App Store")