4

kCTUnderlineStyleAttributeName のドキュメントは、次を中継します。

kCTUnderlineStyleAttributeName この属性が適用されるテキストに対して、レンダリング時に適用される下線のスタイル。値は CFNumber オブジェクトでなければなりません。デフォルトは kCTUnderlineStyleNone です。下線を描画するには、kCTUnderlineStyleNone 以外の値を設定します。さらに、CTUnderlineStyleModifiers にリストされている定数を使用して、下線の外観を変更できます。下線の色は、テキストの前景色によって決まります。

setAttributes 関数のシグネチャは次のとおりです。

func setAttributes(attrs: [NSObject : AnyObject]?, range: NSRange)

私が抱えている問題は、ドキュメントがCTUnderlineStyle.Single をkCTUnderlineStyleAttributeNameキーの値として使用できる (Swift では使用する必要がある)という事実をほのめかしているように見えることです。ただし、前者は構造体であるため、辞書の値の型で必要な AnyObject プロトコルに準拠していません。

何か案は?

4

2 に答える 2

6

私はこれにかなりの時間を費やしています。

AnyObject値はプロトコルと対峙する必要があります。

CTUnderlineStyle.Single次のように使用する代わりにNSNumber

NSNumber(int: CTUnderlineStyle.Single.rawValue)

例:

attributedString.addAttribute(kCTUnderlineStyleAttributeName, value:NSNumber(int: CTUnderlineStyle.Single.rawValue), range:NSRange(location:0,length:attributedString.length));
于 2014-10-31T12:54:28.390 に答える