1

私は、主に C++ の CoreFoundation であるコード ベースを使用しています。私は、Foundation オブジェクトをまだ使用していないソース ファイルに導入したくないと考えています。

最初に NSAttributedString を作成せずに、NSStrikethroughStyleAttribute を使用して CFAttributedString を作成したいと思います。それらが無料でブリッジされていることは知っていますが、可能であれば、このソース ファイルに obj-c を含めないようにしたいと考えています。

では、Foundation を経由せずに取り消し線属性を持つ CFAttributedString を作成する方法はありますか?

4

1 に答える 1

0

ここでは、これCFAttributedStringが最終的に AppKit によってレンダリングされることになると想定しています。CoreText を使用してレンダリングする場合、CoreText には取り消し線の属性がないため、自分で取り消し線を実装する必要があります (いくつかのサンプル コードを含む Cocoanetics の投稿があります)。

したがって、obj-c を使用するアプリの一部によって文字列が AppKit でレンダリングされると仮定すると、実際に必要なのは、何らかの方法で定数だけNSStrikethroughStyleAttributeNameを C コードに公開することです。

これを行う最も簡単な方法は、おそらくこれをファイルの先頭に追加することです。

export CFStringRef NSStrikethroughStyleAttributeName;
于 2013-01-23T00:53:51.510 に答える