2013-08-23 40 views
0

我有這段代碼。如何刪除鍵盤。正常方法不起作用。 objective-c

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    //If user presses next go to next textfield 
    if (textField == self.emailTextField) { 
     [textField resignFirstResponder]; 
     [self.passwordTextField becomeFirstResponder]; 
    } 
    else if (textField == self.passwordTextField) { 
     [self.passwordTextField resignFirstResponder]; 
    } 

    return YES; 
} 

下面的這行代碼會運行,但它所做的只是使textfield處於非活動狀態並將鍵盤留在此處。然後,如果你點擊鍵盤上的按鍵,那麼它什麼也不做。

[self.passwordTextField resignFirstResponder]; 

這不是一個重複的問題,因爲普通的方法由於某種原因不起作用。

+0

是您的''self.passwordTextField' nil'? – iphonic

+0

嘗試thid [self.view endEditing:YES]; – Deepesh

+0

不是無。 – user1898829

回答

1

如果是多個UITextFields,請不要撥打resignFirstResponder;。您需要致電endEditing:

在視圖層次結構中的文本字段上方的任何視圖上調用endEditing:。它會找到第一個響應者並要求它辭職。使用endEditing:YES強制它或endEditing:NO讓文本字段的委託人決定是否應該結束編輯(如果您正在驗證輸入,則有用)。

還有一件事你必須知道。你是否將代理設置爲ALL UITextFields?

將代理設置爲所有UITextFields。

+0

這只是做resignFirstResponder同樣的事情。 – user1898829

0

使用

[self.view endEditing:YES];