1

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

我想在不首先创建 NSAttributedString 的情况下使用 NSStrikethroughStyleAttribute 创建一个 CFAttributedString。我知道它们是免费桥接的,但如果可能的话,我更愿意让这个源文件没有 obj-c。

那么,有没有办法在不通过 Foundation 的情况下创建一个带有删除线属性的 CFAttributedString,如果是这样,如何?

4

1 回答 1

0

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

因此,假设字符串是由您的应用程序的一部分使用 obj-c 渲染的,那么您真正想要的是以某种方式仅将常量公开NSStrikethroughStyleAttributeName给您的 C 代码。

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

export CFStringRef NSStrikethroughStyleAttributeName;
于 2013-01-23T00:53:51.510 回答