2012-05-07 150 views
3

是否可以在TextEdit中(通過AppleScript,Cocoa或Carbon)選擇(突出顯示)一系列文本? 我tryed這個代碼,但不工作:以文本編輯方式以編程方式選擇文本範圍

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

看來這個屬性爲只讀屬性。 謝謝。

回答

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

這將選擇前10個字符,如果文本編輯窗口集中。

+0

謝謝,這對我很有幫助。 –

+0

@omz plese檢查我的問題:https://stackoverflow.com/questions/45274564/i-am-not-able-to-get-the-range-of-selected-text-in-textedit-application-from-我的 – kulss

相關問題