我希望能够接受用户在程序中的输入,并让他们说出来,而不是在文本框中输入。有什么办法吗?
任何帮助将不胜感激.....
答案 0 :(得分:1)
如果您将用于开始听写(系统偏好设置>键盘>听写>快捷方式)的快捷方式更改为Press Left Command Key Twice
或Press Either Command Key Twice
,您可以使用系统事件触发此快捷方式(前提是已授予必要的accessibility privileges)
delay 0.1
tell application "System Events" to repeat 2 times
key down command
key up command
end repeat
或者,您可以触发菜单项:
tell application "System Events" to tell ¬
(the first process whose frontmost is true) to tell ¬
menu bar 1 to tell ¬
menu bar item "Edit" to tell ¬
menu "Edit" to tell ¬
menu item "Start Dictation" to ¬
if exists then click it
经过编辑,可更正menu item
链的引用,如@wch1zpink所突出显示,这以前使其无法在* Google Chrome *中使用。
答案 1 :(得分:0)
@CJK确实值得投票,因为这只是他详尽答案的调整后扩展...
来自@CJK的解决方案...
“或者,您也可以触发菜单项:”
@IBOutlet weak var userInput: NSTextField!
@IBOutlet weak var result: NSTextField!
var value = 100
@IBAction func pushButtonforResult(_ sender: Any) {
result.integerValue = value / userInput.integerValue
}
我测试过上述代码的每个应用程序都使用了almtost。。。它在Google Chrome中不起作用。
但是,对他的原始代码进行的微小调整将在Google Chrome中运行。
tell application "System Events" to tell ¬
(the first process whose frontmost is true) to tell ¬
menu bar 1 to tell ¬
menu "Edit" to tell ¬
menu item "Start Dictation" to ¬
if exists then click it
对于这两种“启用听写功能”的解决方案,在运行代码之前,鼠标光标必须位于允许文本输入的字段中。