Программно выберите диапазон текста в TextEdit


Можно ли выделить (выделить) диапазон текста в TextEdit (по AppleScript, Cocoa или Carbon)? Я попробовал этот код, но не получилось:

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

Похоже, что этот атрибут доступен только для чтения. Спасибо.

1 3

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 сфокусировано.