gpt4 book ai didi

ruby - Ruby 是否提供响应 OS X 上的 Apple 事件的机制?

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:43 24 4
gpt4 key购买 nike

我正在使用 Ruby-Tk 为 OS X 开发一个桌面应用程序,我想为该应用程序提供一个 Apple Events 接口(interface)。这意味着应用程序将定义它将响应的 AppleScript 命令的字典(对应于发送到应用程序的 Apple 事件),并且用户/其他应用程序可以使用 AppleScript 命令编写 Ruby-Tk 应用程序的脚本。其他脚本语言支持此类功能——Python 通过位于 http://appscript.svn.sourceforge.net/viewvc/appscript/py-aemreceive/ 的 py-aemreceive 库和 Tcl 通过位于 http://tclae.sourceforge.net/ 的 tclAE 库.我一直在寻找 Ruby 中的类似功能,但一无所获。

一种可能的机制是 ruby​​objc 桥,它在 Ruby 和 Objective-C 之间提供了一个低级接口(interface),但是这个 gem 似乎很少被使用,并且非常缺乏示例和文档,所以我不确定这是否将是一条富有成效的道路。

注意:MacRuby 可能工作,但它与 Tk 不兼容,因此排除了 MacRuby。此外,RubyOSA 和 rb-appscript 不是我要找的——它们允许 Ruby 将 Apple Events 发送到其他应用程序,而不是接收它们。

最佳答案

在没有其他选择的情况下,看来我将不得不为我需要的 AppleEvent C API 部分编写自己的 Ruby 包装器:主要是 AEInstallEventHandler 和相关函数。幸运的是,Apple 仍然支持此 API,尽管它在 Apple 的开发人员文档中已被降级为“遗留”状态(尽管有趣的是,它并未被弃用)。我将通过 Ruby 的 ffi gem 或更有可能通过 Ruby 的 C API(我仍然需要深入研究)来集成这些功能;直接使用 C API 将减少对其他 gem/模块的依赖。如果一切顺利,我会将其作为 gem 发布。

关于 Donal Fellows 的评论,我需要自定义 AppleEvents——他推荐的文档中通过 Tk 支持的那些可以通过从 Ruby 的 Tk 接口(interface)调用 Tk 来访问。

关于ruby - Ruby 是否提供响应 OS X 上的 Apple 事件的机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7493277/

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