gpt4 book ai didi

macos - 将变量或字符串从 OS X Cocoa 应用程序传递到 Applescript

转载 作者:行者123 更新时间:2023-12-03 16:37:15 26 4
gpt4 key购买 nike

我想将一个变量传递给 applescript。例如,我在 Cocoa-App(不是 cocoa-applescript 应用程序)的文本字段中输入一些单词。然后,它将成为 Applescript 中的变量以供将来使用。我使用 Applescript 告诉某些软件运行某些文件。

我已经尝试过How Can I Pass a String From Applescript to Objective C方法在这里。它可以使用 initialwithSource 在 applescript 中添加第一行。我必须写一个长句子。另外,如果我已经有了 applescript,我必须将它们组合在一起。或者我必须用 Cocoa 编写所有脚本,如下所示。 这是没有意义的,有时效果也不好。

NSString *SlideURL = [NSString stringWithFormat:@"set mypath to \"%@\" \n tell application \"Keynote\" \n open mypath \n tell slideshow %@ \n start slideshow\n end tell \n end tell\n",temp,temp];

// here is meaningless right
// temp is the variable I want to pass to applescript

NSDictionary *errorInfo = nil;
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:SlideURL];
[script executeAndReturnError:&errorInfo];
[script release];

你们中有人知道更好的方法吗?

谢谢

最佳答案

字符串混搭是邪恶的。只需使用AppleScriptObjC;它没有任何魔力或复杂性。

假设您的应用程序是使用 Cocoa 应用程序模板构建的,您将需要 1. 在项目中包含 AppleScriptObjC 框架,并 2. 修改其 main.m 以匹配 ASOC 模板的 main.m,其中包含两行额外的行:

#import <Cocoa/Cocoa.h>

#import <AppleScriptObjC/AppleScriptObjC.h>

int main(int argc, char *argv[])
{
[[NSBundle mainBundle] loadAppleScriptObjectiveCScripts];
return NSApplicationMain(argc, (const char **)argv);
}

完成此操作后,您可以将 ASOC 样式的脚本对象文件添加到您的项目中,对于 ObjC 程序的其余部分来说,它们看起来就像 native 类,例如:

-- FooTest.applescript

script FOOTest
property parent : class "NSObject"

on doSomething_(sender)
display dialog "Hello World"
end

end script

参见this answer有用的链接。

关于macos - 将变量或字符串从 OS X Cocoa 应用程序传递到 Applescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16529800/

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