【问题标题】:Need help building tokenizer/tokenfield需要帮助构建 tokenizer/tokenfield
【发布时间】:2016-11-27 16:15:03
【问题描述】:

这将是我的第一篇文章。我希望遵守社区准则。无论如何,我刚刚开始 Swift 编程。我承担了一些任务,让自己完全沉浸在练习语言中。我一直在寻找有关构建标记器的解释或指南。我相信他们称之为分词器,当您在“收件人”字段中搜索/输入时,它类似于 Gmail 的实现。我希望有人可以帮助阐明这一点,也许能给我指明一些方向。提前致谢!

【问题讨论】:

  • 为什么不只是谷歌“swift tokenizer”
  • 谢谢@Surely,实际上我不确定它是否被称为标记器。我希望建立某种简单的库。
  • 我认为你应该在尝试你的项目之前先研究 NSPredicate nshipster.com/nspredicate 我不熟悉 ios 中的“tokenizer”一词,但 NSPredicate 可能能够满足你的预期目的
  • @markedwardmurray 谢谢,我熟悉 NSPredicate 主要用于字符串搜索和比较,它真的很好。就像您不熟悉使用或术语 Tokenizer 一样,甚至不确定它是否被称为。但基本上,我正在寻找类似于在字段中构建/分组联系人列表的方法,例如 Gmail 的“收件人”字段或 Apple 的电子邮件。
  • 如果你正在处理联系人,你不能只对 CNContact 对象应用谓词吗?

标签: ios uitextview tokenize


【解决方案1】:

这更多地与 Cocoa 框架的知识有关,而不是 Swift。我将从您在 ios 中的评论中复制该示例图像的方法是从某种联系人对象数组中读取,提取电子邮件地址的字符串值,然后以编程方式通过快照 UILabel 集创建 UIImage给定文本、字体属性和灰色背景颜色。此答案中的有用步骤:How to create an image from UILabel?

然后获取该 UIImage 并将其转换为 NSTextAttachment,构建一个 NSAttributedString,其中每个 UIImage 用逗号和换行符连接,并使用最终字符串设置 TextView 的 .attributedString 属性。对于多行输入文本,您需要使用 UITextView(而不是 UITextField)。此答案中的有用步骤:How to add image and text in UITextView in IOS?

【讨论】:

  • 谢谢您,先生!这可能是我正在寻找的方向。我会尝试这种方法,看看效果如何。顺便说一句,不幸的是,我看到了 2 个库,它是用 Objective-C 编写的。希望我能在 Swift 上写出类似的东西。 github.com/clusterinc/CLTokenInputViewgithub.com/zoonooz/ZFTokenField。我猜它真的叫 Tokenizer。
  • 哦,很有趣。根据自述文件,有一个 CLTokenInputView github.com/rlaferla/CLTokenInputView-Swift 的 Swift 端口,但看起来原始的应该是可桥接的
  • 我没看到。无论如何,我仍然会尝试你的方法。我真的很想对 swift 有更广泛的了解。再次感谢,好先生!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 2012-01-29
  • 2012-02-21
相关资源
最近更新 更多