以编程方式在TextEdit中选择文本范围

时间:2012-05-07 18:45:30

标签: macos cocoa applescript macos-carbon

是否可以在TextEdit(AppleScript,Cocoa或Carbon)中选择(突出显示)一系列文本? 我尝试了这段代码但没有工作:

set value of attribute "AXSelectedTextRange" to {selStart, selLen}

看来这个属性是readonly。 感谢。

1 个答案:

答案 0 :(得分:3)

不确定如何使用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个字符。