gpt4 book ai didi

objective-c - 为什么使用 NSAppleScript 打开 2 个终端窗口?

转载 作者:行者123 更新时间:2023-12-03 17:58:52 27 4
gpt4 key购买 nike

如果没有打开终端应用程序,以下代码将打开两个终端窗口。它为什么要这样做?我只想打开一个窗口。

如果仅打开一个终端窗口,则以下代码仅打开一个附加窗口。

NSAppleScript* terminal = [[NSAppleScript alloc] initWithSource:
[NSString stringWithFormat:
@"tell application \"Terminal\"\n"
@" activate\n"
@" do script \"echo %@\"\n"
@" tell the front window\n"
@" set title displays shell path to false\n"
@" set title displays custom title to true\n"
@" set custom title to \"My session! %@\"\n"
@" end tell\n"
@"end tell", name, name]];

[terminal executeAndReturnError:nil];

最佳答案

正如您所编写的那样,do script 命令将始终在新窗口中运行。如果您希望它在特定窗口中运行,请使用以下格式:do script (...) in (window...)。终端的 in 语法还可以处理选项卡中运行的脚本。

例如,如果您想在最前面的窗口中运行脚本,您可以编写 do script "echo Hello, world!"在前窗

<小时/>

编辑:后续,如果您希望始终在窗口中运行脚本(如果没有打开窗口,则创建一个新窗口),您可以使用以下 AppleScript:

tell application "Terminal"
activate
if length of (get every window) is 0 then
tell application "System Events" to tell process "Terminal" to click menu item "New Window" of menu "File" of menu bar 1
end if
do script "echo Hello, world!" in front window
end tell

当然,您需要在 NSArray 中正确转义它,但我确信您可以做到。

关于objective-c - 为什么使用 NSAppleScript 打开 2 个终端窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9612461/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com