将光标放在消息应用文本框中

Place cursor in messages app text box

我正在寻找一个脚本,可以将光标放在消息应用程序的文本字段中。我一直在寻找执行此操作的键盘快捷键,但找不到。谁能提供一个脚本,或者我可以修改的类似脚本。

注意我不是程序员,也不熟悉 AppleScript,但能够修改接近我需要的脚本。

我需要这个,因为我正在尝试使用 Mac OS 中的内置听写功能来控制消息应用程序。我需要一个可以分配给语音命令的脚本,以将光标放在文本字段中,这样我就可以听写一条消息。

非常感谢。

以下已在 OS X 10.8.5 和 Messages 7.0.1 下测试和工作,可能需要针对 OS X/macOS/Messages 的其他版本进行调整:

tell application "Messages"
    activate
    tell application "System Events"
        set focused of text area 1 of scroll area 4 of splitter group 1 of window 1 of application process "Messages" to true
    end tell
end tell

注意:这是在假设 Messages 已经打开 window 的情况下进行编码的。额外的编码将是必要的,根据需要以 try 和/或 delay 和或 on error 语句 的形式,否则是适当的。


下面是我如何编写代码的示例,它处理消息是否打开、显示 window 等。

on setFocusToTextArea()
    tell application "System Events"
        if (count of windows of application process "Messages") is equal to 0 then
            click UI element "Messages" of list 1 of application process "Dock"
            delay 0.25
        end if
        try
            set focused of text area 1 of scroll area 4 of splitter group 1 of window 1 of application process "Messages" to true
        end try
    end tell
end setFocusToTextArea

tell application "Messages"
    if running then
        my setFocusToTextArea()
    else
        activate
        delay 2
        my setFocusToTextArea()
    end if
    activate
end tell

注意:如果消息在脚本为运行时关闭,delay 2命令给出时间让消息在其他 code 运行 之前打开。 delay 命令可以根据您的系统速度适当调整。

如果您使用的是听写命令,在任何应用程序中,您只需说出“显示数字”命令,您就会看到:

然后你只需说出命令“Twenty”,它就会将你的光标放在你想要的位置……在这种情况下,它将是文本字段


同时说出命令“Show Comands”将打开这个 window 列出大量的听写命令。