以编程方式在TextEdit中获取选定的文本字体名称

时间:2012-05-08 04:15:43

标签: macos macos-carbon textedit

是否可以在TextEdit(ObjC或Carbon)中检索所选文本的字体名称? 我尝试了这段代码,但“value”为null:

AXUIElementRef systemWideElement = AXUIElementCreateSystemWide();
AXUIElementRef focussedElement = NULL;
AXError error = AXUIElementCopyAttributeValue(systemWideElement,
    kAXFocusedUIElementAttribute, (CFTypeRef*)&focussedElement);
CFTypeRef value;
AXUIElementCopyAttributeValue(focussedElement, kAXFontTextAttribute, &value);

感谢。

1 个答案:

答案 0 :(得分:2)

请注意,kAXFontTextAttribute在AXTextAttributedString.h中声明。它不是UI元素的属性;它是属性字符串中文本的属性。

尝试使用kAXAttributedStringForRangeParameterizedAttribute,传递kAXSelectedTextRangeAttribute的值。 (假设关注的UI元素是AXTextArea。您不应该假设。)这将返回一个AXTextAttributedString,您可以通过kAXFontTextAttribute属性从中获取字体字典。