是否可以在TextEdit(ObjC或Carbon)中检索所选文本的字体名称? 我尝试了这段代码,但“value”为null:
AXUIElementRef systemWideElement = AXUIElementCreateSystemWide();
AXUIElementRef focussedElement = NULL;
AXError error = AXUIElementCopyAttributeValue(systemWideElement,
kAXFocusedUIElementAttribute, (CFTypeRef*)&focussedElement);
CFTypeRef value;
AXUIElementCopyAttributeValue(focussedElement, kAXFontTextAttribute, &value);
感谢。
答案 0 :(得分:2)
请注意,kAXFontTextAttribute
在AXTextAttributedString.h中声明。它不是UI元素的属性;它是属性字符串中文本的属性。
尝试使用kAXAttributedStringForRangeParameterizedAttribute
,传递kAXSelectedTextRangeAttribute
的值。 (假设关注的UI元素是AXTextArea。您不应该假设。)这将返回一个AXTextAttributedString,您可以通过kAXFontTextAttribute
属性从中获取字体字典。