gpt4 book ai didi

objective-c - 如何使用 [[NSAppleScript alloc] initWithSource : 检查应用程序是否正在运行

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

这是我的原创剧本。它将返回 Safari 的当前 url

NSAppleScript *scriptURL= [[NSAppleScript alloc] initWithSource:@"tell application \"Safari\" to return URL of front document as string"];

如果我想在要求脚本返回 URL 之前检查 Safari 浏览器是否打开怎么办?

这是我在 applescript 编辑器中执行的操作。因此该脚本将检查 Safari 是否正在运行。这在 applescript 编辑器中有效

tell application "Safari"
if it is running then

//return url code here
end if
end tell

我现在需要的是使用“[[NSAppleScript alloc] initWithSource:”立即从我的 cocoa 应用程序调用脚本

我已经尝试过,但它不起作用

NSAppleScript *scriptURL= [[NSAppleScript alloc] initWithSource:@"tell application \"Safari\" if it is running to return URL of front document as string"];

最佳答案

为什么会这样呢? AppleScript 语法很糟糕。

有一些方法可以在不诉诸 AppleScript 的情况下完成此操作,但目前就可以了。通过使用 C 转义序列 \n 插入换行符,您可以在嵌入脚本中包含多行:

NSString *source = @"tell application \"Safari\"\nif it is running then\nreturn URL of front document as string\nend if\nend tell";

您还可以通过将一个字符串常量放在另一个字符串常量之后来分解字符串常量,这样更易​​于阅读:

NSString *source =
@"tell application \"Safari\"\n"
"if it is running then\n"
"return URL of front document as string\n"
"end if\n"
"end tell";

C 编译器会将这些字符串常量粘合在一起形成一个 NSString 对象。

关于objective-c - 如何使用 [[NSAppleScript alloc] initWithSource : 检查应用程序是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7328696/

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