如何在 Swift 中使用 addAttribute

2024-01-07

我正在尝试添加到 UITextViews 的链接,因此我按照以下代码进行操作这个帖子 http://www.raywenderlich.com/48001/easily-overlooked-new-features-ios-7#textViewLinks。相关的 Objective-C 代码是

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"This is an example by @marcelofabri_"];
[attributedString addAttribute:NSLinkAttributeName
                         value:@"username://marcelofabri_"
                         range:[[attributedString string] rangeOfString:@"@marcelofabri_"]];

但是当我在 Swift 2 中尝试这样做时

var attributedString = NSMutableAttributedString(string: "This is an example by @marcelofabri_")
attributedString.addAttribute(NSLinkAttributeName, value: "username://marcelofabri_", range: attributedString.string.rangeOfString("/marcelofabri_"))

我收到错误

无法使用类型为“(String, value: String, range: Range?)”的参数列表调用“addAttribute”

我需要改变什么才能让它发挥作用?


尝试使用NSString寻找范围而不是 SwiftString:

var attributedString = NSMutableAttributedString(string: "This is an example by @marcelofabri_")
attributedString.addAttribute(NSLinkAttributeName, value: "username://marcelofabri_", range: (attributedString.string as NSString).rangeOfString("/marcelofabri_"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Swift 中使用 addAttribute 的相关文章

随机推荐

  • Jackson 不使用 JSON 根元素

    我使用 JAX RS Jersey 来使用 Web 服务请求 并使用 Jackson 来转换 JSON 数据 Path public class JAXRSRestController Path jsonRequest POST Consu
  • 如何在 Flutter 中点击 ListView 中的另一个项目后取消选择已选择的项目?

    我想允许用户从列表中仅选择一个选项 如果他一个接一个地选择 则只有最后一个选项应被视为已选择 在当前代码中 用户可以从列表中选择我想要避免的多个选项 尝试过的代码 class MyApp extends StatelessWidget ov
  • VBA 如果 <其中任何一个> = <值>?

    我对 VBA 相当陌生 我找不到一种简单的方法来测试任何指定变量是否等于指定值 下面的方法似乎可行 但是有更简单的方法吗 If variable1 1 Or variable2 1 Or variable3 1 Or variable4 1
  • c# 向 Windows 用户授予“作为服务登录”权限

    如何向用户授予服务的 LogOnAsService 权限 我需要手动执行此操作 在服务 msc我可以转到该服务 更改密码 设置与之前相同 单击 应用 然后收到一条消息 帐户 postgres 已 授予 作为服务登录 权限 我如何从代码中执行
  • 如何手动重新渲染组件 Angular 5

    有没有办法可以手动重新渲染组件 比如当用户单击按钮时 我看过类似的帖子 但这些帖子都不适合我here https stackoverflow com questions 35105374 how to force a components
  • pytorch错误:CrossEntropyLoss()不支持多目标

    我正在进行一个使用加速度数据来预测某些活动的项目 但我在损失计算上有问题 我在用CrossEntropyLoss for it 数据如下所示 我使用每行的前 4 个数据来预测索引 就像每行的最后一个数据一样 1 84 84 81 4 81
  • python 中 int() 违反直觉的行为

    中明确指出docs https docs python org 3 5 library functions html intint number 是一个地板类型转换 int 1 23 1 当且仅当字符串是整数文字时 int string 返
  • 查询视图时,视图定义中的过滤子句将被忽略

    我有一张桌子SCHEDULES有柱子LDATE and SCHTYPEID If SCHTYPEID 1 那么LDATE包含数字格式的日期 例如 20170918 表示今天的日期 如果SCHTYPEID 2 那么LDATE包含 0 在编写查
  • 在显示来自 viewDidload 的警报之前显示来自应用程序委托的警报

    我正在尝试通过应用程序委托显示推送通知中包含的消息 如 parse com 文档中所述 我遇到的问题是 在我的第一个视图控制器的 viewdidload 方法中 我呈现了一个警告 用户在使用该应用程序之前必须看到该警告 用户从 viewdi
  • 从另一个 C++ 程序编译 C++ 源代码

    我正在制作一个从 Brainfuck 到 C 的编译器 并且我已经完成了所有内容 直到我实际编译程序创建的 cpp 文件 我真的更希望编译器实际上能够生成可执行文件 而不仅仅是 C 的源代码 那么我该如何在 Windows 上执行此操作呢
  • 您使用什么材料来学习 Flex/Air 以及 ColdFusion + BlazeDS/LCDS? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Nginx / PHP-FPM 504 网关超时

    我正在将 php fpm 与 nginx 一起使用 我有一些脚本可以获取上传的 Excel 工作表并对其进行处理 这是一项长期的工作 但是 执行 60 秒后 我收到 504 Gateway Timeout 错误 php 脚本继续运行直至完成
  • 根据商店营业时间有效确定企业是否营业

    给定时间 例如 目前周二下午 4 24 我希望能够从一组企业中选择当前正在营业的所有企业 我有一周中每一天每个企业的营业时间和休息时间 假设一家企业只能在每小时 00 15 30 45 分钟处开门 关门 我假设每周都有相同的时间表 我最感兴
  • 如何在 for 循环中重用 ES6 javascript 中的生成器?

    我正在尝试编写一个可以接受列表或生成器作为输入的函数 例如这个函数 function x l for let i of l console log i for let i of l console log i 如果我像这样运行它 x 1 2
  • jqGrid:如果主键列被编辑,如何更新行ID

    主键值用作从服务器返回的 json 数据中的行 ID 如果主键值被编辑并保存两次 第二次保存会因jqGrid而出错 再次将原始主键值传递给编辑方法 如果在内联编辑中更改主键值 如何将 jqGrid 行 ID 更新为新的主键值 functio
  • 从 Java/C# 到 C++ 的最佳方式是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 注入修改后的 Spring 安全表达式语言实现后,“需要调试符号信息 (...)”

    我有一个示例类要测试 PreAuthorize注释 看起来或多或少像这样 class BankService PreAuthorize hasCustomRole ROLE CUSTOM or hasRole ROLE EXAMPLE Do
  • 从 SQL Server 数据库生成 DDL 脚本

    如何使用 SQL 选择 存储过程 等 从 SQL Server 数据库生成所有表的 DDL 带有外键 索引等 脚本 除了数据之外我需要一切 I can t使用 Sql Server Management Studio 因为我想在将在 Lin
  • Python重新加载模块不会立即生效

    请参阅下面的复制代码 跟踪内存泄漏我发现 reload module 不会立即生效 下面的程序应该打印 0 1 2 3 4 但是 当快速执行时 它会打印 0 0 0 3 3 等序列 将 sleep 函数中的时间增加到例如 1 秒似乎可以解决
  • 如何在 Swift 中使用 addAttribute

    我正在尝试添加到 UITextViews 的链接 因此我按照以下代码进行操作这个帖子 http www raywenderlich com 48001 easily overlooked new features ios 7 textVie