/ / Programowo zaznacz zakres tekstu w TextEdit - makra, kakao, applescript, węgiel

Programowo zaznacz zakres tekstu w TextEdit - makra, kakao, applescript, węgiel

Czy można wybrać (zaznaczyć) zakres tekstu w TextEdit (przy AppleScript, Cocoa lub Carbon)? Próbowałem tego kodu, ale nie działałem:

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

Wydaje się, że ten atrybut jest tylko do odczytu. Dzięki.

Odpowiedzi:

3 dla odpowiedzi № 1

Nie wiem, jak to zrobić za pomocą AppleScript (powinno być możliwe), z interfejsami API ułatwień dostępu, możesz zrobić coś takiego:

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);

Wybrałoby to pierwsze 10 znaków, jeśli okno TextEdit jest skupione.