У меня есть UITextView, который не редактируется, но должен иметь возможность выбрать слово одним касанием этого слова и передать выбранное слово другой функции. Каким образом это можно сделать? Любая помощь будет оценена по достоинству.Как сделать UITextView, который выбирает слово одним касанием?
-1
A
ответ
0
решение Superhacky (если у вас есть много слов, это плохая плохая идея):
- Сделать все слова
UITextView
ссылки (но не форматирует их как таковые). - Сделайте свой
UITextView
выбираемый в IB - Попросите VC (или тот, кто владеет UITextVeiw) осуществлять
UITextViewDelegate
- Реализовать
-(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange
- Используйте
characterRange
установитьUITextView
selectedTextRange - прибыль!
Менее Hacky решение было бы использовать UITapGestureRecognizer
, чтобы получить место под крана, чтобы перевести его на UITextView
и выберите глифы, которые горизонтально surrond расположение крана.
0
Шаг 1: Чтобы получить выбранную строку из textView, вы должны реализовать делегат UITextViewDelegate
и реализовать метод.
Шаг 2: передать selectedText другой функции
class ViewController: UIViewController, UITextViewDelegate {
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.textView.delegate = self;
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func textViewDidChangeSelection(textView: UITextView) {
let range: NSRange = textView.selectedRange
let text = textView.text as NSString
let selectedText = text.substringWithRange(NSMakeRange(range.location, range.length))
self.getSelectedText(selectedText)
}
func getSelectedText(text: String) {
NSLog("\(text)")
}
}