Я работаю над приложением IOS, и я использую Swift. Я хочу сделать слово clickable и открыть некоторый URL (на данный момент www.apple.com) при нажатии этого слова.NSLinkAttributeName не работает в UITextView
Я использую следующий код, но по какой-то причине он не работает.
func setDescription(description: NSAttributedString)
{
let descriptionRect = CGRectMake(10, 50, self.bounds.size.width - 20, self.bounds.size.height-20)
let descriptionView = UITextView(frame: descriptionRect)
descriptionView.editable = false
descriptionView.selectable = false
descriptionView.attributedText = description
descriptionView.delegate = self
descriptionView.font = UIFont(name: "Helvetica", size: 14)
NSLog("%@", descriptionView.attributedText)
self.addSubview(descriptionView)
}
func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
NSLog("In text view delegate")
return true;
}
Ниже фрагмент кода принимает строку и формы приписано строку с первыми 5 символов холдинг NSLinkNameAttribute. Затем я вызвал функцию setDescription, чтобы добавить эту атрибутную строку в TextView.
let mutableAttrString = NSMutableAttributedString(string: attrString1)
let linkURL = NSURL(string: "http://www.apple.com")
mutableAttrString.addAttribute(NSLinkAttributeName,value: linkURL!,range: NSMakeRange(0, 5))
wordDetailView.setDescription(mutableAttrString)
Когда я нажимаю на слово, которое имеет атрибут link, делегат textview даже не получил вызов !!!! Может кто-то, пожалуйста, помогите мне, почему он не работает и как он работает.
спасибо.
модифицированной descriptionView.selectable в действительность. даже тогда он не работает. – sr116
Вы тестируете устройство или симулятор? Иногда в симуляторе кран не регистрирует ссылку. Попробуйте долгое нажатие в центре слова, и оно будет работать. – beyowulf
длинный печать сделал произведение. Спасибо. – sr116