【问题标题】:iOS Swift - Add target(selector) to stringiOS Swift - 将目标(选择器)添加到字符串
【发布时间】:2015-05-27 21:46:01
【问题描述】:

有没有办法将目标添加到 UITextView 中的指定单词?例如。 我想从 UITextView 将目标添加到带有哈希标记的单词。 我正在使用一个函数从 textview 中获取带有哈希标记的单词的数组,但我不知道如何将它们添加为目标或点击手势。

【问题讨论】:

    标签: ios string swift target hashtag


    【解决方案1】:

    您可以使用属性字符串来设置文本视图中的文本。该属性字符串在目标哈希标记词的范围内使用链接属性(NSLinkAttributeName 和您选择的 URL 值)。您需要在文本中搜索带有哈希标记的单词并添加适当的链接属性。您可能希望创建链接 URL 以具有自定义方案并包含有关带哈希标记的单词的信息。当点击其中一个链接时,您会从文本视图中获得委托回调。

    【讨论】:

    • 我想在点击那个词后进行转场。我已经创建了一个函数,可以在文本中搜索带有哈希标记的单词并设置更改它们的颜色。
    • 好的,修改一下设置链接属性,然后在委托回调中触发segue
    • string.addAttribute(NSLinkAttributeName, value: "segue1", range: range) 如何获取回调?
    • 在视图中添加一个委托并检查委托方法,我不记得手的名字,关于url处理的东西
    【解决方案2】:

    我最近有同样的问题,我找到了适合我需要的解决方案。它并不完美,但也许会有所帮助:

    我决定在目标元素周围使用具有特定样式的整个文本按钮。在用户体验方面,用户可能倾向于触摸带样式的词。

    @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
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      • 2019-05-22
      • 1970-01-01
      • 2016-07-11
      相关资源
      最近更新 更多