2012-02-21 13 views

Respuesta

32

UITextView adopta el protocolo UITextInput, que tiene una propiedad selectedTextRange. Establecer la propiedad a cero:

self.textView.selectedTextRange = nil; 
+0

Nota: Esto sólo funciona en iOS 5+. – lorean

2

La respuesta anterior no funcionó para mí, el compilador se queja:

Envío de 'void *' para el parámetro de tipo incompatible 'NSRange' (también conocido como 'struct _NSRange ')

que tuvo que usar un vacío NSRange estructura en su lugar:

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

'selectedTextRange' no es lo mismo que' selectedRange'. Es por eso que tienes el error. –

1

Esta es la forma en que funciona y se puede tocar cualquier lugar que desee en la vista con el fin de anular la selección del texto previamente seleccionado:

En su UIViewController escribir esta función:

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

    self.view.endEditing(true) 
} 
+0

¿No debería llamar también a 'super.touchesBegan (_: con:)'? – ma11hew28

Cuestiones relacionadas