是否可以在 TextEdit 中选择(突出显示)一系列文本(通过 AppleScript、Cocoa 或 Carbon)? 我尝试了这段代码但不起作用:
set value of attribute "AXSelectedTextRange" to {selStart, selLen}
这个属性似乎是只读的。 谢谢。
最佳答案
不确定如何使用AppleScript(不过应该是可能的),使用辅助功能API,您可以执行以下操作:
AXUIElementRef systemWideElement = AXUIElementCreateSystemWide();
AXUIElementRef focussedElement = NULL;
AXError error = AXUIElementCopyAttributeValue(systemWideElement, kAXFocusedUIElementAttribute, (CFTypeRef *)&focussedElement);
CFRange range = CFRangeMake(0, 10);
AXUIElementSetAttributeValue(focussedElement, kAXSelectedTextRangeAttribute, AXValueCreate(kAXValueCFRangeType, &range));
CFRelease(focussedElement);
CFRelease(systemWideElement);
如果 TextEdit 窗口获得焦点,则会选择前 10 个字符。
关于macos - 以编程方式在 TextEdit 中选择文本范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10487350/