当用户点击按钮时,我想在我的应用中打开相应默认应用/浏览器中的网址。打开的网页应该得到关注。
我找到了
[[NSWorkspace sharedWorkspace]
openURL:[NSURL URLWithString:@"https://www.example.com"]];
但它会在后台打开页面(至少在Safari已经运行的情况下)。浏览器只会" blicks"并保持在几毫秒内可见,而不是进入后台。
我也试过NSApplication sharedApplication
但这没有做任何事情 - 它根本没有打开网页。
呼叫什么以便Safari也能获得焦点?或者至少在视觉上通知用户Safari中发生的事情。
或者我需要采用其他方法吗?
答案 0 :(得分:2)
NSWorkspace openURL应该正确地完成所有操作。如果它没有,我会查看你的应用是否做了任何可能撤消Safari最重要的事情,比如在你的一个窗口上调用orderFront。
NSApplication openURL适用于您实现自己的浏览器(或其他处理URL方案的应用程序)的情况,因此它没有做任何事情并不奇怪。
如果您想将应用程序带到前面,可以考虑的其他事项是NSRunningApplication和Launch服务,但我有点惊讶的是浏览器并没有为您提供帮助。
或者它可能与Safari偏好设置中的此选项有关: 如果切换此设置(在新安装的Mac上关闭)可以解决您的问题,您可能需要使用NSRunningApplication将Safari明确地放在前面。