/ / Programaticamente selecione o intervalo de texto no TextEdit - macos, cacau, applescript, carbono

Programaticamente selecione o intervalo de texto no TextEdit - macos, cacau, applescript, carbono

É possível selecionar (Realçar) um intervalo de texto no TextEdit (por AppleScript, Cocoa ou Carbono)? Eu tentei este código mas não funcionou:

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

Parece que esse atributo é somente leitura. Obrigado.

Respostas:

3 para resposta № 1

Não sei como fazê-lo com o AppleScript (embora seja possível), com as APIs de acessibilidade, você poderia fazer algo assim:

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

Isso selecionaria os primeiros 10 caracteres se a janela do TextEdit estiver focada.