2012-06-09 15 views

Odpowiedz

150

implementacji metody delegata

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.yourIBtextField.delegate = self; 
} 

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [textField resignFirstResponder]; 
    return NO; 
} 
+17

Część, która została mi brakuje dodając do interfejsu w pliku * .h. Po dodaniu tego kodu działał bez problemu. Mam nadzieję, że pomaga komuś innemu! – proudgeekdad

+7

W tej sytuacji wymagany jest . – brooNo

+3

Możesz również połączyć delegata z storyboardu (xib), jeśli przeciągasz połączenie z textField do reprezentacji viewController. W ten sposób nie trzeba pisać linii z metody viewDidLoad. – Luka

9

UITextView nie ma żadnych metod, które zostanie wywołana, gdy użytkownik wciśnie klawisz Enter.

Nawet jeśli chcesz to zrobić, zaimplementuj metodę textView: shouldChangeTextInRange: replacementText: UITextViewDelegate, a następnie zaznacz, czy tekst zastępujący to \ n, ukryj klawiaturę.

Mogą istnieć inne sposoby, ale nie jestem tego świadomy.

Upewnij się, że deklarujesz obsługę protokołu UITextViewDelegate.

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
replacementText:(NSString *)text { 

    if([text isEqualToString:@"\n"]) { 
     [textView resignFirstResponder]; 
     return NO; 
    } 
    return YES; 
} 

Mam nadzieję, że to bardzo pomoże.

+0

Powoduje to zresetowanie moich ukrytych ustawień z jakiegoś powodu. Każdy pomysł, dlaczego? – John

+0

czy możesz podać więcej szczegółów, na przykład jaki rodzaj ukrytej scenerii? –

1

Kategoria Marka na UIViewController z następnej metody

- (void)hideKeyboard 
{ 
    [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) 
               to:nil 
              from:nil 
             forEvent:nil]; 
} 
Powiązane problemy