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

2024-01-02

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

首先,字体大小为 16:

然后我使用代码插入图像:

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

[self insertTextAttachment:imageAttachment];

and

- (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];
}

However, after inserting the image, the text font changed unexpectedly: enter image description here

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

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

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

有人可以帮忙吗?


我有类似的问题。我尝试设置并添加属性到我的NSMutableAttributedString而这些在设置之后就再也没有体现出来UITextView's attributedText财产。文本的字体大小总是较小。

我终于通过存储来让它工作UITextView's font在我设置它之前,它是局部变量中的属性attributedText属性,然后我将其设置为font属性为紧随其后的局部变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

插入图像后 NSAttributedString 意外更改字体 的相关文章

随机推荐

  • 如何将图例放置在字段集边框之外

    我正疯狂地想弄清楚如何使这项工作发挥作用 我希望图例位于边界之外 我怎样才能在保留图例标签的同时实现这一点 正如您在下面看到的 我尝试使用跨度 但它不起作用 body background color 996600 color black
  • 包结构应该与Java中的目录结构“总是”相同?

    在 Eclipse 中 包结构应该与 Java 中的目录结构相同 我尝试浏览 Oracle Java 文档的正式文档 但没有找到这条规则 此规则是否扩展到其他 IDE 例如 Netbeans 或者这是 Java 语言本身的规则 这条规则有多
  • 使用 html2canvas 打印页面

    我正在使用以下命令在我的网络上构建打印页面功能html2canvas function printthispage html2canvas mydiv onrendered function canvas var myImage canva
  • Postgresql 约束

    我似乎无法做到这一点 我正在尝试将一个字段修改为外键 并进行级联删除 我做错了什么 ALTER TABLE my table ADD CONSTRAINT 4 FOREIGN KEY my field REFERENCES my forei
  • Logcat 错误:应用程序崩溃且无法运行。根据 Logcat,setContentView 出错

    我正在开发一个基本的方程平衡应用程序 并且是 Android 开发新手 该应用程序根本不在手机上运行 我之前有一个启动屏幕作为启动器 它曾经弹出 然后应用程序就会关闭 我删除了启动屏幕 现在该应用程序无法打开 我猜测 MainActivit
  • 在 wpf 中更改控件可见性的优雅方法

    我发现了更多关于这个主题的问题 但没有找到答案 我需要更改控制单击的可见性 在win form应用程序中 如果我是对的 我可以使用类似的东西 somecontrol Visible somecontrol Visible 但是当应用程序是w
  • 参数化查询的基础知识

    我已经多次使用参数化查询 我知道它有助于防止 SQL 注入 但是 我想知道我是否可以知道参数化查询中的基本逻辑是什么 防止SQL注入可能很简单 但我不知道 我尝试在 google 上搜索它的基本内容 但每次我都找到一个如何在 Asp net
  • 如何在 AutoHotKey 中切换键盘映射

    我想将键盘的一部分映射为数字键盘 我的笔记本电脑键盘没有数字键盘 j gt 1 k gt 2 l gt 3 u gt 4 i gt 5 o gt 6 I would like to toggle the mapping with a sho
  • Java如何决定三元条件运算符表达式的类型?

    谁能解释一下吗 public class Test public static void main String args char c A int i 0 boolean b true System out println b c i S
  • html css 使 div 与文本在同一行

    我的问题是 如何避免将文本放在新行上 My code p Seating availability p p p div style width 10px height 10px background color green border 0
  • 使用擦除删除 std 向量的元素对象:a)内存处理和 b)更好的方法?

    我有一个vec A存储的实例class A as vec A push back A 我想在稍后阶段删除向量中的一些元素 并有两个问题 a 元素被删除为 vec A erase iterator 我是否需要添加任何额外的代码以确保没有内存泄
  • spring Social facebook + api + angularjs (如何从 Angular 调用 -> spring api -> 重定向到 facebook 登录)

    这可能只是 AngularJS 的问题 我对前端和 angularjs 非常陌生 我有一个 angularjs 登录服务 它调用 url signin facebook 进行登录 似乎后端已正确重定向并调用 facebook oauth 但
  • 如何对透明背景的视频进行编码

    我正在使用 OSX 的 cocoa 使用 AVAssetWriter 以 h264 编码视频 这是配置 Configure video writer AVAssetWriter m videoWriter AVAssetWriter all
  • 更改 localhost Web 应用程序 Express 的名称?

    我正在开发一个项目 我需要将项目名称从 localhost 9000 更改为 someothername 9000 这是在我的开发环境中 而不是生产环境中 我收到了项目文件 而那个人 不再在这里 使用了express js 我一直在寻找这个
  • VSCode 一个文件中的结果与不同文件之间的超链接:行

    我有一些搜索结果存储在文件中 例如 results foo 这些结果提供每个匹配结果的文件名和行号 它们看起来像这样 bar1 c 123 bar2 c 678 bar2 c 2345 bar3 c 444 我想做的是 在 VSCode 中
  • 向sql server中的int列插入空值

    我有一个子例程将记录插入到 sql server 表中 代码 public void Insert Met int Counts char Gender Dictionary
  • 如何比较两段文字?

    我需要删除包含多个段落的文本中的重复段落 我使用类中的函数java security MessageDigest计算每个段落的MD5哈希值 然后将这些哈希值添加到Set If add ed 成功 这意味着最新的段落是重复的 这种方式有风险吗
  • 从文件中读取数字 C++

    我有一个包含简单数字的文件 例如 66 or 126 我怎样才能把它读给intC 中的值 请注意 该文件还可能包含一些空格或回车符after号码 我开始是这样的 int ReadNumber fstream filestr filestr
  • 我想将 Automapper 配置文件放置在我的业务层中

    我创建了一个 Web api core 2 0 应用程序 我有我的主应用程序和业务层 我想将自动映射器配置文件放置在业务层中 以便所有映射都在业务层中进行 我的业务层只是一个类库项目 这可能吗 或者我是否需要将所有映射放在主应用程序的 Pr
  • 插入图像后 NSAttributedString 意外更改字体

    我正在 iOS 7 中使用 Text Kit 创建富文本编辑器 下面是问题所在 首先 字体大小为 16 然后我使用代码插入图像 Image Attachment NSTextAttachment imageAttachment NSText