gpt4 book ai didi

ios - 在不重置 attributedText 属性的情况下更改 UITextView 的属性

转载 作者:可可西里 更新时间:2023-11-01 04:59:20 24 4
gpt4 key购买 nike

我有一个 UITextView,当键入某些字符时,它会被解析并更改其属性。文本未更改,仅更改描述文本格式的属性。

如果我对每个字符条目进行解析,我实际上是在抓取 text,创建具有正确格式的属性字符串,并设置 textview 的 attributedText 属性到我的新属性字符串。这完全破坏了自动更正、双空格快捷方式和拼写检查。

如果我只在输入某些特殊字符时才解析,效果会好一些,但我会遇到奇怪的错误,例如每个句子的第二个单词都大写。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if (text.length == 0) {
return YES;
}
unichar firstCharacterInText = [text characterAtIndex:0];
if (/* special character */) {
[self processTextView];
}
}

- (void) processTextView {
NSString *text = self.text;

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text];

[attributedString addAttribute:NSFontAttributeName value:[UIFont fontWithName:kFontRegular size:12.0f] range:NSMakeRange(0, text.length)];
[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor textColor] range:NSMakeRange(0, text.length)];
// set other properties
}

我的问题是:有没有办法在不重置 TextView 的 attributedText 属性和破坏 UITextView 的所有方便功能的情况下更改 TextView 的文本属性?

最佳答案

详细说明 fatuhoku 上面的评论。你可以打电话

func setAttributes(_ attrs: [NSAttributedString.Key: Any]?, range: NSRange)

在 TextView 的 .textStorage 上。

关于ios - 在不重置 attributedText 属性的情况下更改 UITextView 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16160106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com