2012-02-21 31 views

Odpowiedz

32

UITextView przyjmuje protokół UITextInput, który ma właściwość selectedTextRange. Ustaw właściwość do zera:

self.textView.selectedTextRange = nil; 
+0

Uwaga: To działa tylko na iOS 5+. – lorean

2

poprzedniej odpowiedzi nie działa dla mnie, kompilator narzeka:

Wysyłanie „void *” do parametru niezgodnego typu „NSRange” (aka „struct _NSRange ')

musiałem użyć pustego NSRange struct zamiast:

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

'selectedTextRange' to nie to samo co' selectedRange'. Właśnie dlatego masz błąd. –

1

ten sposób to działa i można dotknąć gdziekolwiek chcesz w widoku, aby odznaczyć wcześniej wybrany tekst:

Na UIViewController napisać tę funkcję:

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

    self.view.endEditing(true) 
} 
+0

Nie powinieneś też nazywać 'super.touchesBegan (_: with:)'? – ma11hew28

Powiązane problemy