現在テキストを選択していなくても、ユーザーが入力するテキストを下線として設定できるようにしようとしています。これは iOS 6 アプリ用で、UITextView にテキストを入力します。NSAttributedString として保存されます。太字と斜体は問題なく機能します。下線についての何かが、それが機能しないようにしています。
UITextView *textView = [self noteTextView];
NSMutableDictionary *typingAttributes = [[textView typingAttributes] mutableCopy];
[typingAttributes setObject:[NSNumber numberWithInt:NSUnderlineStyleSingle] forKey:NSUnderlineStyleAttributeName];
NSLog(@"attributes after: %@", typingAttributes);
[textView setTypingAttributes:typingAttributes];
NSLog(@"text view attributes after: %@", [textView typingAttributes]);
私の最初のログ ステートメントは、下線が設定されていることを示しています。
attributes after: {
NSColor = "UIDeviceRGBColorSpace 0 0 0 1";
NSFont = "<UICFFont: 0xa9c5e30> font-family: \"Verdana\"; font-weight: normal; font-style: normal; font-size: 17px";
NSKern = 0;
NSStrokeColor = "UIDeviceRGBColorSpace 0 0 0 1";
NSStrokeWidth = 0;
NSUnderline = 1;
}
しかし、直後のログ ステートメントには nsunderline 属性が表示されません。textView setTypingAttributes 行を削除しても影響はありません。
text view attributes after: {
NSColor = "UIDeviceRGBColorSpace 0 0 0 1";
NSFont = "<UICFFont: 0xa9c5e30> font-family: \"Verdana\"; font-weight: normal; font-style: normal; font-size: 17px";
NSKern = 0;
NSStrokeColor = "UIDeviceRGBColorSpace 0 0 0 1";
NSStrokeWidth = 0;
}
太字と斜体で機能しているのに、下線を引いていない理由に困惑しています。また、最初に属性を取得してから忘れるように見えるのはなぜですか。あなたが持っているかもしれない洞察を共有してください。ありがとう。