2012-02-21 28 views

risposta

32

UITextView adotta il protocollo UITextInput, che ha una proprietà selectedTextRange. Impostare la proprietà a zero:

self.textView.selectedTextRange = nil; 
+0

Nota: Funziona solo su iOS 5+. – lorean

2

La risposta precedente non ha funzionato per me, il compilatore si lamenta:

Invio '* vuoto' al parametro di tipo incompatibile 'NSRange' (aka 'struct _NSRange ')

ho dovuto usare un NSRange struct vuoto invece:

[self setSelectedRange:(NSRange){ .location = 0, .length = 0 }]; 
+6

'selectedTextRange' non è uguale a' selectedRange'. Ecco perché hai ricevuto l'errore. –

1

Questo è il modo in cui funziona e si può toccare dove vuoi nella vista per deselezionare il testo precedentemente selezionato:

Sul UIViewController scrivere questa funzione:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 

    self.view.endEditing(true) 
} 
+0

Non dovresti chiamare anche 'super.touchesBegan (_: with:)'? – ma11hew28

Problemi correlati