gpt4 book ai didi

ios - 插入图像后 NSAttributedString 意外更改字体

转载 作者:可可西里 更新时间:2023-11-01 03:38:10 24 4
gpt4 key购买 nike

我在 iOS 7 中使用 Text Kit 创建富文本编辑器。下面是问题。

一开始,然后字体大小是16:

enter image description here

然后我使用代码插入一张图片:

//  Image Attachment
NSTextAttachment *imageAttachment = [[NSTextAttachment alloc] init];
[imageAttachment setImage:image];
imageAttachment.bounds = CGRectMake(0, 0, width, height);

[self insertTextAttachment:imageAttachment];

- (void)insertTextAttachment:(NSTextAttachment*)textAttachment {
NSMutableAttributedString *newContent = [[NSMutableAttributedString attributedStringWithAttachment:textAttachment] mutableCopy];

NSMutableAttributedString *currentContent = [self.contentTextView.attributedText mutableCopy];
[currentContent insertAttributedString:[[NSAttributedString alloc] initWithString:@"\n"] atIndex:mEditingRange.location];
[currentContent insertAttributedString:[[NSAttributedString alloc] initWithString:@"\n"] atIndex:mEditingRange.location];

mEditingRange.location++;
[currentContent replaceCharactersInRange:mEditingRange withAttributedString:newContent];
[currentContent setAttributes:@{NSFontAttributeName: [UIFont fontWithName:kOFontDefault size:16.0]} range:NSMakeRange(mEditingRange.location + newContent.length, 1)];
[self.contentTextView setAttributedText:currentContent];
}

但是插入图片后,文字字体竟然发生了变化: enter image description here

我尝试使用以下代码来解决问题(添加到 insertTextAttachment: 方法中):

[currentContent setAttributes:@{NSFontAttributeName: [UIFont fontWithName:kOFontDefault size:16.0]} range:NSMakeRange(mEditingRange.location + newContent.length, 1)];

问题已部分修复,新行中的新文本使用正确的字体,但图像旁边的文本仍然是错误:

enter image description here

有人能帮忙吗?

最佳答案

我遇到了类似的问题。我尝试为我的 NSMutableAttributedString 设置和添加属性,但这些在设置 UITextView 的 attributedText 属性后从未反射(reflect)出来。文本的字体大小总是较小。

我最终通过在设置 attributedText 属性之前将 UITextView 的 font 属性存储在局部变量中来实现它,然后之后我将它的 font 属性设置为局部变量。

关于ios - 插入图像后 NSAttributedString 意外更改字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21742376/

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