【发布时间】:2015-05-27 21:46:01
【问题描述】:
有没有办法将目标添加到 UITextView 中的指定单词?例如。 我想从 UITextView 将目标添加到带有哈希标记的单词。 我正在使用一个函数从 textview 中获取带有哈希标记的单词的数组,但我不知道如何将它们添加为目标或点击手势。
【问题讨论】:
标签: ios string swift target hashtag
有没有办法将目标添加到 UITextView 中的指定单词?例如。 我想从 UITextView 将目标添加到带有哈希标记的单词。 我正在使用一个函数从 textview 中获取带有哈希标记的单词的数组,但我不知道如何将它们添加为目标或点击手势。
【问题讨论】:
标签: ios string swift target hashtag
您可以使用属性字符串来设置文本视图中的文本。该属性字符串在目标哈希标记词的范围内使用链接属性(NSLinkAttributeName 和您选择的 URL 值)。您需要在文本中搜索带有哈希标记的单词并添加适当的链接属性。您可能希望创建链接 URL 以具有自定义方案并包含有关带哈希标记的单词的信息。当点击其中一个链接时,您会从文本视图中获得委托回调。
【讨论】:
我最近有同样的问题,我找到了适合我需要的解决方案。它并不完美,但也许会有所帮助:
我决定在目标元素周围使用具有特定样式的整个文本按钮。在用户体验方面,用户可能倾向于触摸带样式的词。
@IBOutlet weak var stringBtn: UIButton!
override func viewWillAppear(animated: Bool) {
let string = "string with #tag" as NSString
var attributedString = NSMutableAttributedString(string: string as String)
let firstAttributes = [NSUnderlineStyleAttributeName: 1, NSForegroundColorAttributeName: UIColor.whiteColor()]
attributedString.addAttributes(firstAttributes, range: string.rangeOfString("#tag"))
stringBtn.setAttributedTitle(attributedString, forState: .Normal)
//Add target to your button
}
【讨论】: