1

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

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

谢谢。

4

1 回答 1

2

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

尝试kAXAttributedStringForRangeParameterizedAttribute改为,传递你为kAXSelectedTextRangeAttribute. (假设聚焦的 UI 元素是一个 AXTextArea。您不应该假设。)这将返回一个 AXTextAttributedString,您可以从中获取kAXFontTextAttribute属性的字体字典。

于 2012-05-08T07:23:45.757 回答