我试图允许 textView 通过自定义按钮通过插入带有属性的 NSAttributedString @"\u2022"
(项目符号点的 unicode)来允许项目符号点,该NSParagraphStyle
属性将其headIndent
设置设置为特定的点长度以创建缩进。
问题是这样的:一旦我将该属性项目符号附加到 UITextView 的attributedString
属性中,该属性就会对所有未来键入的文本生效。这意味着如果你换行(无论是按回车键还是仅仅输入足够的内容以达到 textView 的水平边界),它将始终缩进。我确实将属性分配给了仅包含项目符号点的属性字符串,所以我不知道为什么它会对所有其他键入的文本生效。
我想不出任何删除该属性的方法,因为它似乎不再分配给某个范围,因为它会影响所有未来的文本。我知道删除属性的唯一方法是,如果它有一个指定的范围,使用removeAttribute:range:
.
另一个注意事项:UITextView 的属性中不存在该typingAttributes
属性。
这是代码:
NSMutableAttributedString *bulletString = [[NSMutableAttributedString alloc]initWithString:@"\u2022"];
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc]init];
[style setFirstLineHeadIndent:25.0];
[bulletString addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0.0, [bulletString.string length])];
NSMutableAttributedString *textViewText = [[NSMutableAttributedString alloc]initWithAttributedString:self.textView.attributedText];
[textViewText appendAttributedString:bulletString];
self.textView.attributedText = textViewText;
摘要:带有 NSParagraphStyle 属性的 NSAttributedString 附加到 textView 的文本。属性会影响所有未来键入的文本,尽管它在创建时被分配到特定范围。