好的,所以假设下面的文本,因为它在textView
中P
我有一些文字,我正在我的textView中显示,我想在上面的例子中用户点击某些想要的文字时触发一个动作我想触发并在用户点击 时采取行动doAction 即可。我不知道我将如何做到这一点,即使这是可能的,我知道如何在我的textView上添加一个链接,但这不是同一个案例。任何人都可以指导我如何实现这个目标?
P.S。如果问题不够明确,请告诉我,我会解决它。
答案 0 :(得分:3)
1)使用attributedString
,您可以实现所需的行为。以下是示例: -
@IBOutlet weak var terms: UITextView!
let privacyURL = "http://www.programmincrew.in";
override func viewDidLoad() {
super.viewDidLoad()
self.terms.delegate = self
let str = "By using this app you agree to our Terms and Conditions and Privacy Policy"
let attributedString = NSMutableAttributedString(string: str)
let foundRange = attributedString.mutableString.rangeOfString("Privacy Policy")
attributedString.addAttribute(NSLinkAttributeName, value: privacyURL, range: foundRange)
terms.attributedText = attributedString
}
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
if (URL.absoluteString == privacyURL) {
let myAlert = UIAlertController(title: "Conditions", message: nil, preferredStyle: UIAlertControllerStyle.Alert)
myAlert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(myAlert, animated: true, completion: nil)
}
return false
}
2)将UITextView的dataDetectorTypes
属性设置为UIDataDetectorTypeLink
。
答案 1 :(得分:2)