我正在使用Ruby-Tk开发OS X的桌面应用程序,并且我想为该应用程序提供Apple Events界面。这意味着应用程序将定义它将响应的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是否提供了一种在OS X上响应Apple事件的机制?
一个可能的机制是rubyobjc桥,它提供了Ruby和Objective-C之间的低级接口,但是这个gem似乎很少使用,并且严重缺乏示例和文档,所以我不确定是否这将是一个富有成效的追求。
注意:MacRuby可能会工作,但它与Tk不兼容,因此排除MacRuby。另外,RubyOSA和rb-appscript不是我正在寻找的 - 它们允许Ruby将Apple事件发送给其他应用程序,而不是接收它们。
一般AE或通过http://www.tcl.tk/man/tcl8.6/TkCmd/tk_mac.htm中描述的(Tcl)API由Tk支持的那些AE –