我使用 QuicKeys 和 AppleScript 中的一些快捷键来执行聚焦应用程序中的各种功能。某些快捷键(例如单个字母数字键和空格键)应被禁用,并在文本输入字段聚焦时用于文本输入。
我已经弄清楚了当某些应用程序窗口获得焦点时如何禁用快捷方式功能(通过名称匹配)。但是有没有办法通过 AppleScript 检测活动焦点何时是文本输入字段?
如果是这样,这将大大简化我的脚本,因为我可以潜在点击变得越来越难以跟踪和管理。
奖励积分:这实际上是一个跨平台问题。在 Mac 上,我使用 AppleScript 的 QuicKeys 宏来解决这个问题,在 PC 上,我使用 AutoHotkey 和 Pulover 的 Macro Creator。因此,如果有人也知道如何使用 AHK 或 PMC 检测文本输入字段是否处于活动状态/聚焦状态,请告诉我并声明跨平台宏功能向导! :)
答案1
AppleScript 可以检测到文本字段是否已聚焦。我的回答基于以下帖子
我可以检查我是否在文本字段中吗?
这篇文章包含来自脚本调试器的一个图像,该图像显示了焦点文本字段的属性,其中我概述了您可以使用的属性:
文本字段可通过其role
存在来识别AXTextField
,并且focused
的值true
表明它具有焦点。
由于我没有使用 Mac,因此我无法帮助创建精确的 AppleScript。但同一篇文章还包含一个 Outlook 脚本,也许您可以将其用作 Lightroom 的模型:
tell application "Microsoft Outlook" to activate
tell application "System Events"
tell application process "Microsoft Outlook"
set frontmost to true
tell (first window whose subrole is "AXStandardWindow")
set subjElem to (first text field of splitter group 1 whose description is "Subject:")
set subjProp to properties of subjElem
set subjFocused to focused of subjElem
end tell
end tell
end tell
return subjFocused
另一个有用的帖子是
AppleScript – 我如何得到以编程方式获取 UI 元素的名称、属性、特性和类,而无需通过 AccessibilityInspector 进行“猜测”?