我正在从我的OS x应用程序中打开一个网址。我这样做如下
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]];
我是按钮动作做的。但每当我按下按钮时,我都会打开一个新标签。我可以阻止它吗?我需要实现的是,如果选项卡已经打开则刷新选项卡,而不是为URL打开一个新选项卡。可以实现吗?
提前致谢!
答案 0 :(得分:0)
尝试从你的cocoa应用程序中调用applescript,如下所示:
NSAppleScript *run = [[NSAppleScript alloc] initWithSource:@"tell application \"Safari\" to do Javascript \"location.reload(true)\" in current tab of window 1"];
[run executeAndReturnError:nil];
该脚本假定要在第一个Safari窗口的当前选项卡中打开要刷新的URL。我没试过。
答案 1 :(得分:0)
这是您正在预览的浏览器的问题,而不是您的应用程序的问题。通常,当您在浏览器中打开相同的网址时,会打开此网址,它会检测到此情况并刷新相应的窗口或标签。
您可以通过将书签拖到桌面来轻松测试;然后双击它以在默认浏览器中打开。例如,Safari将正确刷新。
所以:
编辑:选中了Crome和FF,他们确实打开了新标签......
答案 2 :(得分:-1)
如果您没有沙盒,可以使用AppleScript
NSString *s = @"tell application \"Safari\"\
activate\
end tell\
\
tell application \"System Events\"\
tell process \"Safari\"\
keystroke \"r\" using {command down}\
end tell\
end tell";
NSAppleScript *run = [[NSAppleScript alloc] initWithSource:script];
[run executeAndReturnError:nil];