Ios UITextView项目符号点处理
TL;DR:在UITextView中是否有使用项目符号的内置方法,或者是否有使用TextKit的方法,或者是否有针对我在下面描述的四个问题的单独解决方法,以及我已经使用的方法?请继续阅读我尝试过的方法的完整描述以及其中的问题 我一直在尝试向UITextView子类添加要点处理。重要的是,它应该是可编辑的,而不仅仅是用于显示文本 对于添加项目符号,我获取光标当前所在段落的起始位置,并在该位置插入项目符号字符Ios UITextView项目符号点处理,ios,uitextview,Ios,Uitextview,TL;DR:在UITextView中是否有使用项目符号的内置方法,或者是否有使用TextKit的方法,或者是否有针对我在下面描述的四个问题的单独解决方法,以及我已经使用的方法?请继续阅读我尝试过的方法的完整描述以及其中的问题 我一直在尝试向UITextView子类添加要点处理。重要的是,它应该是可编辑的,而不仅仅是用于显示文本 对于添加项目符号,我获取光标当前所在段落的起始位置,并在该位置插入项目符号字符 UITextPosition *startOfParaPosition = [self s
UITextPosition *startOfParaPosition = [self startOfCurrentParagraph];
NSInteger startOfParaOffset = [self offsetFromPosition:self.beginningOfDocument toPosition:startOfParaPosition];
NSMutableAttributedString *mAttributedString = [self.attributedText mutableCopy];
NSAttributedString *bullet = [[NSAttributedString alloc] initWithString:@"• "];
[mAttributedString insertAttributedString:bullet atIndex:startOfParaOffset];
[self setAttributedText:mAttributedString];
然后我得到了当前段落的整个范围
NSRange range = [self rangeOfCurrentParagraph];
最后,我得到当前段落的现有样式,修改缩进,然后重新应用段落样式
[self getParagraphStyleInString:self.attributedText range:range completion:^(NSMutableParagraphStyle *paragraphStyle) {
paragraphStyle.firstLineHeadIndent = 10.0;
paragraphStyle.headIndent = 20.0;
NSMutableAttributedString *mAttributedText = [self.attributedText mutableCopy];
[mAttributedText addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:range];
[super setAttributedText:mAttributedText];
}];
注意,我在这里调用[super-setAttributedText:
,因为我在self
中重载了这个函数,以添加一些其他样式,我现在不想应用这些样式
这种方法存在许多问题
提前感谢。为什么不能在需要的位置将项目符号字符作为子视图添加到UITextView?因为这样项目符号就不会与文本一起流动。在项目符号段落上方添加新内容,将其进一步向下推至视图,将使项目符号子视图保留在最初放置的位置。@masher您是否找到了问题的解决方案?我还试图复制这种行为。@jbouaziz不,我没有找到解决方案,而且这个项目从来没有启动过,因为它被放弃了。抱歉,我帮不上忙。为什么不能在需要的位置将项目符号字符作为子视图添加到UITextView?因为这样项目符号就不会与文本一起流动。在项目符号段落上方添加新内容,将其进一步向下推至视图,将使项目符号子视图保留在最初放置的位置。@masher您是否找到了问题的解决方案?我还试图复制这种行为。@jbouaziz不,我没有找到解决方案,而且这个项目从来没有启动过,因为它被放弃了。对不起,我帮不上忙。