问题标签 [applescript-objc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
519 浏览

objective-c - 有没有办法使用 AppleScript 在不访问“系统事件”的情况下单击 osx 菜单项?

我使用这样的代码自动执行一些菜单点击,而不是每次都自己执行:

现在,为了在 osx lion 沙箱中进行这项工作,我的权利文件如下所示(为了弄清楚这一点做了很多研究):

现在,正如上帝所愿,苹果拒绝了这个应用程序,因为我正在访问com.apple.systemevents. 有没有办法解决使用System Events单击指定应用程序菜单中的指定菜单项的方法?

0 投票
1 回答
455 浏览

objective-c - 如何解释作为 NSAppleScript 结果返回的记录

我使用 NSAppleScript 的 executeAndReturnError 方法从一个 Objective-C 应用程序运行一个 AppleScript。这将返回一个包含脚本结果的 NSAppleEventDescriptor 对象。我的脚本返回一个 applescript 记录。如何解释objective-c中的记录?例如,如果返回的脚本记录是 { name:"Jakob", phone:"12345678" } 如何在 name 属性中获取字符串“Jakob”?

0 投票
1 回答
644 浏览

applescript - applescript输入框中的自动完成/建议功能

我正在尝试构建一个 applescript 对话框,以帮助我跟踪我正在处理的事情。为了使它真正有效,我想让它从我的待办事项列表中查找项目,并在我输入 la google 建议或其他 javascript 自动完成功能时建议它们。

我在想,如果我只捕获 @ 键的输入,我想用它来表示项目或任务的 # 键,然后开始将输入与我的任务或项目列表匹配,那将是相当简单的。例如,假设我输入:

“为@开发功能”

此时@的输入将开始捕获键盘输入并尝试建议我的待办事项列表中的一个项目。这就是我卡住的地方。似乎我应该能够将侦听器或其他东西附加到我的输入框中,但我似乎找不到任何示例或对此类功能的引用。

0 投票
2 回答
268 浏览

applescript-objc - 如何使用 cocoa-applescript (AppleScriptObjc) 应用程序创建 PDF 服务?

我决定鲁莽,用GMail PDF服务编写自己的Email PDF,同时学习AppleScriptObjC。我一切正常,除了实际上能够从打印对话框接受文件。

到目前为止,代码如下所示: script gmailpdfAppDelegate property parent : class "NSObject"

编译并添加到 PDF Services 文件夹时,我收到此错误(该应用程序名为 GMail PDF: The document “Google News.pdf” could not be opened. GMail PDF cannot open files in the “Portable Document Format (PDF)” format.

如何让 AppleScriptObjC 应用程序接受该文件?

0 投票
2 回答
709 浏览

applescript-objc - 如何使用 AppleScriptObjC 创建类方法

我正在尝试使用 ASOC 覆盖类的 +initialize 方法,但我找不到覆盖类方法的方法。甚至可能吗?

不要让我正在谈论的语言产生任何混淆,这里有一些代码:

0 投票
1 回答
1070 浏览

xcode - cocoa-applescript (Xcode) 中的平滑 UI 更改

我正在尝试编写一个简单的 Xcode cocoa-applescript 程序,该程序在文件夹的每个子文件夹上执行 bash 脚本,并在执行时显示进度条。

我有一个要链接到的NSProgressIndicator设置,barStatus并且NSTextField要链接到lblStatus以显示一些信息性文本:

这是主要动作发生的循环:

一切似乎都正常工作,但用户界面有些小故障。进度条不仅会平滑增加,而且会在每一步消失并显示片刻,然后再次消失。中的文本lblStatus确实会顺利更改。

当我从循环中删除时,事情会完全丢失delay:在循环完成之前,不会进行 UI 更改(即使脚本运行正常)。因此,当循环完成时,进度条会消失并重新出现。

这是闪烁 UI 的youtube 视频

我究竟做错了什么?如何让 xcode 顺利绘制进度条?

请注意,这是我第一次编写 Xcode 应用程序,而且我对 Applescript 的了解有些粗略。

编辑:

我发现调用处理相同函数的函数在从菜单项(或绑定到该菜单项的组合键)中调用时没有闪烁的 UI。

0 投票
0 回答
304 浏览

cocoa - ApplescriptObjC 调用 NSMakePoint 导致 exc_bad_access 错误

这个问题真的让我很困惑,因为 AppleScriptObjC 应该可以自己处理垃圾收集。

无论如何,重现此错误的步骤是:

  1. 创建一个新的 Cocoa-AppleScript-Application 项目
  2. 将单个调用插入到NSMakePoint项目nameAppDelegate.applescript文件中的任何位置。该文件现在应该如下所示:

    /li>
  3. 运行应用程序

上面的应用程序将启动并显示警报"X-value of point: 5.0"(如预期的那样),但在警报之后它会立即崩溃并EXC_BAD_ACCESS在文件中出现以下错误main.mmain.m 错误

因此,某处正在对不再存在的对象进行调用。如果我们在NSZombies启用的情况下分析应用程序,它会确认已向僵尸发送消息并提供以下附加信息:僵尸信息

我也用NSMakeRangeand尝试了同样的事情NSMakeRect,它给出了完全相同的结果。我怀疑每次调用 Core Foundation 函数都会以这种方式使应用程序崩溃。但是,如果我们作为示例调用 NSTextField 的 stringValue(),它就可以正常工作。

把电话放在外面applicationWillFinishLaunching_也不能解决它。那么我做错了什么?

我在 OSX Lion 1.7.4 上使用 XCode 4.3.3


编辑:经过一些进一步的研究,我意识到我不需要调用NSMakePoint,我可以创建一个 AppleScript 记录{|x|:0, |y|:0},它就像一个 NSPoint 对象一样工作。这样就解决了,我猜。

0 投票
1 回答
549 浏览

objective-c - 从命令行启动 MAC OSX 目标 C 应用程序的不同方法

我有一个 MAC OSX 目标 C 应用程序,比如 first.app,在其中我使用具有管理员权限的 NSAppleScript 来运行 shell 脚本。这个脚本缩进以启动另一个目标 C 应用程序,比如 second.app。

当您在 shell 脚本中使用打开命令 Ex: "open second.app" 时,它可以正常工作。

但是,如果您通过在 shell 脚本中调用它的二进制 Ex: "/second.app/Contents/MacOS/second" 来启动 second.app,那么在 second.app 关闭之前,控件不会返回到 first.app。当我们关闭 second.app 然后 first.app 恢复。

如前所述,从 open 命令启动应用程序和直接调用应用程序二进制文件有什么区别?

0 投票
1 回答
246 浏览

xcode - 如何使用 ApplescriptObjC 从 Xcode 中的滑块获得持续反馈?

我是 ApplescriptObjC 的新手,如果您继续阅读,您可能会看到。我想知道如何从滑块中获得持续的反馈,以便一旦它的值为 1,它就会运行脚本 A,而一旦它的值更改为 0,它就会运行脚本 B。

我知道您可以对按钮进行操作,例如:

在 buttonClicked_(sender) 上做动作结束 buttonClicked_

但是我怎样才能有一个不断检查滑块值的变化并采取适当行动的人呢?是否类似于使用 getStringValueFrom() 将滑块连接到文本框?

任何帮助,将不胜感激。谢谢 :)

0 投票
3 回答
819 浏览

cocoa - 如何将 Cocoa-Applescript 应用程序注册为 URL 处理程序?(相当于 Applescript Studio 中的“在开放位置”)

应该相对简单,但我似乎找不到任何东西 - 我正在尝试将 URL 处理程序添加到 Cocoa-Applescript 应用程序,如下所述:http: //www.macosxautomation.com/applescript/linktrigger /index.html

除了该示例似乎不适用于 Xcode/Cocoa-Applescript 应用程序。

在我的 AppDelegate.applescript 中,在 applicationDidFinishLaunching_ 之后,我得到了:

我已经在 info.plist 中添加了所有 CFBundleURLTypes/CFBundleURLschemes 的东西。

后者似乎正在工作,因为当我单击 myAppScheme:// 链接时我的应用程序会激活。

但是日志语句不会触发。

我也尝试过类似的东西,on handleGetURLEvent_(this_URL)但我现在只是在猜测:)

非常感谢任何帮助..