问题标签 [appleevents]

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 投票
4 回答
1412 浏览

objective-c - 如何对我的自定义 URL 方案进行故障排除?

我设置了一个简单的事件处理程序,如此处所述但似乎没有调用选择器。我将代码放在我的 AppDelegate 类中,并将委托连接到 IB 中。尝试在我希望被调用的选择器中放入一些 NSLog() 和断点,但没有一个被命中。URL 方案在启动我的应用程序时起作用,但在那之后它什么也不做。谁能建议如何解决这个问题?谢谢!

0 投票
3 回答
3338 浏览

objective-c - 如何从 Cocoa 中的 NSAppleEventDescriptor 中提取 AppleScript 数据并解析它

我正在做的是在 Cocoa 中执行 AppleScript。它返回一些数据作为NSAppleEventDescriptor, NSLog() 打印如下:

我想获取该数据并将其转换为NSDictionaryNSArray或有用的东西,以便我可以从中提取内容(特别是我在持有“69671872”数字的字段之后)。它似乎是某种数组,但我对 Apple Events 的了解相当有限。关于如何做到这一点的任何想法?

这是创建上述数据的来源:

提前感谢您的帮助!:)

0 投票
2 回答
1720 浏览

objective-c - 如何向objective-c中的活动应用程序发送“Cmd-C”键击,或者告诉应用程序进行复制操作?

获取活动应用程序不是问题,我已经实现了这个。

我想知道的是如何将“Cmd-C”组合键发送到活动应用程序,以便将所选文本放入剪贴板(一般粘贴板)。

甚至更好:如何告诉活动应用程序在不发送击键的情况下执行复制操作,或者在触发复制操作时不突出显示“编辑”菜单。

我不能使用 NSAppleScript (10.2),因为这个特定的类必须尽可能向后兼容(理想情况下是 10.0)。

我看过 NSAppleEvents (这似乎是要走的路),但似乎找不到办法做到这一点。一个具体的答案将非常受欢迎!

提前致谢!

更新:

Rob 的 NSAppleScript 解决方案有效,但我仍然有兴趣在不需要 NSAppleScript 的情况下这样做。我尝试过使用 CGPostKeyboardEvent (使用最后一个布尔值将键设置为“向上”或“向下”状态),但我似乎找不到键码或任何字符代码表。有人可以准确地说 CGPostKeyboardEvent 将如何用于输入“c”吗?(CGCharCode 和 CGKeyCode 表将是完美的)。

0 投票
1 回答
8574 浏览

objective-c - 应用程序退出事件

我正在开发一个可可应用程序。我的应用程序最初显示一个弹出表。我需要知道当我们尝试通过右键单击并在停靠栏中的图标上选择“退出”来退出应用程序时触发了哪个事件,因为由于弹出表,我无法退出应用程序。我该如何解决这个问题?

0 投票
3 回答
4629 浏览

cocoa - 如何通过 ScriptingBridge 使用 AppleScript 获取终端窗口的窗口 ID 和选项卡号?

我可以使用以下 AppleScript 打开终端选项卡:

这将返回一个字符串,如:tab 1 of window id 3263 of application "Terminal"。太好了,我可以看到窗口 id 3263和选项卡编号1(尽管我不知道如何查询myTab以仅获取这些值)。

在 Cocoa ScriptingBridge 中,我可以这样做:

如何从选项卡对象中获取窗口 ID 和选项卡编号?


编辑 2009/4/27 - 为什么?

为了回答我为什么要这样做 - 我在终端窗口中打开一个命令(如上),并取回选项卡对象。但是我想移动/调整这个窗口的大小,所以我需要访问选项卡的“窗口”对象。

我正在使用 Objective-C(实际上,是从 Perl 桥接的 Objective-C),并且想坚持使用标准的 OS 组件,所以我相信我只有 NSAppleScript 和 ScriptingBridge 框架可以使用(所有 perl applescript 模块都与 64 位无关碳去除)。我会尝试 NSAppleScript,但处理返回的值似乎是一种黑色艺术。

我当前的解决方案是获取选项卡对象的TTY(保证唯一)并枚举每个窗口的每个选项卡,直到找到包含该选项卡的窗口。我认为这不是最好的方法(肯定不是很快!)。


编辑 2009/4/30 - 解决方案

根据下面“”的建议,我勇敢地使用了NSAppleEventDescriptor API。最初,我只能通过 NSAppleScript 的executeAndReturnError()调用来解决这个问题。但是我发现 NSAppleScript 比 ScriptingBridge 慢得多。

在使用ClassDump提取更多的 SBObject 调用后,我发现了未记录的specifierDescription()qualifiedSpecifier()调用。前者给了我很好的“窗口ID Y的标签X ”字符串。后者返回苹果事件描述符,然后我可以对其进行解码。

我的最终代码(在 perl 中)是:

0 投票
2 回答
1938 浏览

objective-c - iTunes 苹果事件 API

我想通过 Objective-C 控制 iTunes(我只是无法appscript在我的 OS/X 10.6.3 系统上正确安装 Python ......这本来是我的首选)。

据我所知,Cocoa 上的 IPC 是基于Apple Events的:是否有:

  1. 关于 iTunes/Apple Events API 的在线文档?
  2. 进入 iTunes API 的自省机制?

我知道 Applescript Editor / Open Dictionary 功能,但我不知道如何将我看到的信息翻译成 IPC 调用。

注意:我已经尝试通过PyObjC制定解决方案,但我所追求的主要功能是我无法弄清楚的轨道搜索。

免责声明:这里是 OS/X 超级新手。

0 投票
1 回答
638 浏览

applescript - GCD 和 AppleEvents / NSOperationQueue 和 AppleScript

据我了解,GCD 提供的线程确实有一个运行循环,但没有源/端口。现在我使用一些在 NSOperationQueue 中通过 AppleEvents 调用 AppleScripts 的方法。有时我的应用程序会因以下堆栈跟踪而崩溃。

我的问题:

  • 在 NSInvocationOperation 或 NSBlockOperation 中使用 AppleScript
  • 在 GCD 线程中使用 AppleEvents
  • 在使用 AppleEvents 之前,我必须将源/端口添加到 gcd 线程的运行循环吗?
  • 在使用 [CATransaction commit] 之前,我是否必须将源/端口添加到 gcd 线程的运行循环?
  • 在使用 [NSObject performSelectorAfterDelay...] 之前,我是否必须将源/端口添加到 gcd 线程的运行循环?
  • 如果是,如何?
  • 我可以简单地调用 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 5.0, false); /// 或 30 或 appleevent 定义的超时时间?
0 投票
1 回答
182 浏览

cocoa - 请帮助 ODBEditorSuite Apple Event voodoo?

我正在开发一个简单的小文本编辑器,它实现了 Apple Events ODBEditorSuite 的编辑器部分,以便我的应用程序可以与 QuickCursor 一起使用以提供编辑功能。需要发送的事件非常简单,并且共享许多相同的代码,因此我将其包装成这样的方法:

通过使用NSLog()调试,我已经确认 Apple 事件正在发送,并且据我所知,directObject 描述符包含适当的数据。但是,在快速光标方面,我继续看到类似5/17/10 12:41:15 PM QuickCursor[177] Got ODB editor event for unknown file.Console.app 中的消息。我已经从源代码构建了 QuickCursor,并且能够确定它没有从 directObject 描述符中获取正确的路径。

所以,我不知道在哪里可以超越这一点,因为这些NSAppleEventDescriptor东西对我来说很陌生,而且有点老派的灰胡子骗术的味道:-P 但我希望有人听到会更好地精通这些咒语,也许能指出我什么我做错了。提前致谢。

0 投票
2 回答
154 浏览

objective-c - appleevent 与通知

我正在寻找 macos X 中的高性能进程间通信系统。

什么是最好的系统?AppleEvents还是NSNotifications

0 投票
1 回答
559 浏览

objective-c - SBApplication:如何发送原始数据

我想使用 SBApplication sendEvent 发送原始数据(一个 void*)

不幸的是,我没有找到有关此的文档。

你有什么想法来实现这一目标吗?

在此先感谢您的帮助,

问候,