2011-02-01 10 views

Odpowiedz

4

Użyj następującego delegat

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    if (textView == YourTextField){ 
     if ([text isEqualToString:@"\n"]) { 
       [textView resignFirstResponder]; 
       return NO; 
     } 
    } 
    return YES; 
} 

Zwykle w TextView klawisz powrotu jest użycie dodać \ n do tekstu, tak że lepiej dodać trochę inny przycisk na górze UITextView i kodu funkcja rezygnacji tam .

EDIT:

nie ma takiego pełnomocnikowi -(BOOL)textViewShouldReturn:(UITextView *)textView

+0

upewnij się, że ustawiłeś delegata – KingofBliss

+1

jak to jest odpowiedź, ten kod ukrywa klawiaturę przy każdym wprowadzeniu znaku! –

1

to się stanie, jeśli ViewController czyli powyżej tej TextView w hierarchii widok nie jest delegatem tej TextView. Jeśli nie, wówczas ViewController nigdy nie otrzyma komunikatu textViewShouldReturn. W viewController po utworzeniu subView (UITextView).

aTextView.delegate = self; 

Aby sprawdzić, aby upewnić się, że jest coraz nazywa dodać do swojej funkcji i test

NSLog(@"resigning first responder"); 

będzie sprawdzać, czy funkcja ta jest nawet nazywany coraz

5

Poprawiono odpowiedź KingOfBliss za:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{  
    if (textView == messageInput) { 
     if ([text isEqualToString:@"\n"]) { 
      [textView resignFirstResponder]; 
      return NO; 
     } 
    } 
    return YES; 
} 
0
if ([text isEqualToString:@"\n"]) { 
     [textView resignFirstResponder]; 
     return NO; 
    } 

wystarczyło w moim przypadku.

+0

Podczas gdy ten fragment kodu może rozwiązać pytanie, [w tym wyjaśnienie] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-ans -answers) naprawdę pomaga poprawić jakość twojego posta. Pamiętaj, że odpowiadasz na pytanie przeznaczone dla czytelników w przyszłości, a te osoby mogą nie znać powodów sugestii dotyczących kodu. – msrd0

Powiązane problemy