2012-04-23 9 views
7

Chcę, aby klawiatura zniknie, gdy użytkownik kliknie przycisk „Powrót”, powiedziano mi, aby korzystaćtextFieldShouldReturn nie nazywa

-(BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [tf resignFirstResponder]; 
    return YES; 
} 

Ale nic się nie dzieje po kliknięciu przycisku „powrót”, metodę nawet nie jest wywoływana. Robimy to w trybie innym niż ViewController. Nie używam także kreatora interfejsów. Co powinienem zrobić?

+0

Czy ustawiłeś delegata UITextField na obiekt zawierający metodę? – MarkPowell

+0

Czy wyznaczyłeś kontroler widoku jako ? – lukecampbell

Odpowiedz

26

musisz upewnić się, że wdrożenie UITextFieldDelegate i ustawić delegata UITextField do siebie. W swoim pliku .h:

@interface gameOverMenu : UIView <UITextFieldDelegate> 

i gdzieś w pliku .m (viewDidLoad: być może):

self.yourTextField.delegate = self; 

Teraz twój - (BOOL) textFieldShouldReturn: (UITextField *) metoda textField powinien być nazywany .

+0

dzięki za pomoc mate! – Alexander

+0

bez problemu. tylko fyi, ponieważ widzę, że jesteś nowy - powszechną praktyką jest oznaczanie mojej odpowiedzi jako poprawnej, jeśli to ona najbardziej Ci pomogła. system nagród :) – nicholjs

+0

Głosowanie wymaga 15 reputacji – Alexander

0

Upewnij się, że masz ustawione klasy nadrzędnej (cokolwiek to jest) jako UITextFieldDelegate