0
shouldInteractWith url textview委託沒有在ios9中調用,但我也實現了ios9委託方法。代碼如下。如果有人知道這個問題修復了什麼,那麼請讓我知道。在此先感謝您的幫助shouldInteractWith url textview委託沒有在ios9中調用,但在ios10中工作?
import UIKit
class UrNestTermsView: UIView {
// Outlets
@IBOutlet weak var contentView: UIView!
@IBOutlet weak var termsTextView: UITextView!
@IBOutlet weak var termsUrNestCheckBox: UrNestCheckBox!
@IBOutlet weak var subscribeUrNestCheckBox: UrNestCheckBox!
@IBOutlet weak var subscribeTextView: UITextView!
fileprivate let fontOfTerms = UIFont.systemFont(with: 10)
fileprivate let labelTextColor = UIColor(colorLiteralRed: 102/255, green: 110/255, blue: 111/255, alpha: 1)
override func awakeFromNib() {
super.awakeFromNib()
self.setUp()
}
}
extension UrNestTermsView: UITextViewDelegate {
func setUp() {
self.subscribeTextView.textColor = labelTextColor
self.subscribeTextView.font = fontOfTerms
self.setUpTextView()
}
func setUpTextView() {
// You must set the formatting of the link manually
let linkAttributeTermsOfService = [
NSLinkAttributeName: NSURL(string: "https://www.apple.com")!,
NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle.rawValue,
NSForegroundColorAttributeName: labelTextColor
] as [String : Any]
let linkAttributePolicy = [
NSLinkAttributeName: NSURL(string: "https://www.google.com")!,
NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle.rawValue,
NSForegroundColorAttributeName: labelTextColor
] as [String : Any]
let linkAttributePaymentsTermsOfService = [
NSLinkAttributeName: NSURL(string: "https://www.amazon.com")!,
NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle.rawValue,
NSForegroundColorAttributeName: labelTextColor
] as [String : Any]
let linkAttributeGuestRefundPolicy = [
NSLinkAttributeName: NSURL(string: "https://www.yahoo.com")!,
NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle.rawValue,
NSForegroundColorAttributeName: labelTextColor
] as [String : Any]
let linkAttributeHostGuaranteeTerms = [
NSLinkAttributeName: NSURL(string: "https://www.assembla.com")!,
NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle.rawValue,
NSForegroundColorAttributeName: labelTextColor
] as [String : Any]
let attributedString = NSMutableAttributedString(string: kTermsAndPolicy)
// Set the 'click here' substring to be the link
attributedString.setAttributes(linkAttributeTermsOfService, range: NSMakeRange(33, 16))
attributedString.setAttributes(linkAttributePolicy, range: NSMakeRange(51, 6))
attributedString.setAttributes(linkAttributePaymentsTermsOfService, range: NSMakeRange(59, 25))
attributedString.setAttributes(linkAttributeGuestRefundPolicy, range: NSMakeRange(102, 19))
attributedString.setAttributes(linkAttributeHostGuaranteeTerms, range: NSMakeRange(127, 20))
attributedString.addAttribute(NSFontAttributeName, value: fontOfTerms, range: NSMakeRange(0, attributedString.length-1))
attributedString.addAttribute(NSForegroundColorAttributeName, value: labelTextColor, range: NSMakeRange(0, attributedString.length-1))
self.termsTextView.delegate = self
self.termsTextView.attributedText = attributedString
let attributedStringOfSubscribe = NSMutableAttributedString(string: kSubscribe)
attributedStringOfSubscribe.addAttribute(NSFontAttributeName, value: fontOfTerms, range: NSMakeRange(0, attributedStringOfSubscribe.length))
attributedStringOfSubscribe.addAttribute(NSForegroundColorAttributeName, value: labelTextColor, range: NSMakeRange(0, attributedStringOfSubscribe.length))
self.subscribeTextView.delegate = self
self.subscribeTextView.attributedText = attributedStringOfSubscribe
}
//For iOS 7...9
@available(iOS, deprecated: 10.0)
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {
return true
}
@available(iOS 10.0, *)
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
return true
}
}
嗨,你找出解決方案呢? – HungCLo
嗨,我仍然沒有找到解決方案 – Sakthimuthiah