Программно выберите диапазон текста в TextEdit
Можно ли выделить (выделить) диапазон текста в TextEdit (по AppleScript, Cocoa или Carbon)? Я попробовал этот код, но не получилось:
set value of attribute "AXSelectedTextRange" to {selStart, selLen}
Похоже, что этот атрибут доступен только для чтения. Спасибо.
1 ответ:
Не знаю, как это сделать с 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);
, который выделит первые 10 символов, если окно TextEdit сфокусировано.