在CFAttributedString中设置删除线属性

时间:2013-01-23 00:43:50

标签: macos core-text core-foundation nsattributedstring

我正在使用C ++中主要是CoreFoundation的代码库。我不想在尚未使用它们的源文件中引入Foundation对象。

我想使用NSStrikethroughStyleAttribute创建CFAttributedString,而不首先创建NSAttributedString。我知道他们是免费的桥接器,但如果可能的话,我宁愿保持这个源文件没有obj-c。

那么,有没有办法用strikethrough属性创建一个CFAttributedString而不通过Foundation,如果有的话,怎么做?

1 个答案:

答案 0 :(得分:0)

我假设这个CFAttributedString最终将由AppKit呈现。如果你使用CoreText进行渲染,那么你将不得不自己实现删除线,因为CoreText没有它的属性(有Cocoanetics post带有一些示例代码)。

因此,假设使用obj-c的应用程序部分使用AppKit呈现字符串,那么您真正想要的是以某种方式将常量NSStrikethroughStyleAttributeName暴露给您的C代码。

最简单的方法可能就是将其添加到文件的顶部:

export CFStringRef NSStrikethroughStyleAttributeName;