我有2個文本框,用於登錄ID和密碼。 當用戶點擊電子郵件ID時,他們的鍵盤類型是電子郵件和密碼,它是默認的。 他們完成了兩個鍵盤的按鈕,關閉了鍵盤。 我想要做的是,一旦用戶填寫了身份和密碼,他們完成按鈕應改爲「登錄」,我可以執行選擇器的方法登錄。如何更改鍵盤的DONE按鈕,iPhone
這可以做到嗎?
感謝
我有2個文本框,用於登錄ID和密碼。 當用戶點擊電子郵件ID時,他們的鍵盤類型是電子郵件和密碼,它是默認的。 他們完成了兩個鍵盤的按鈕,關閉了鍵盤。 我想要做的是,一旦用戶填寫了身份和密碼,他們完成按鈕應改爲「登錄」,我可以執行選擇器的方法登錄。如何更改鍵盤的DONE按鈕,iPhone
這可以做到嗎?
感謝
如果使用的是標準的iOS鍵盤,那麼唯一可用的返回鍵類型是
typedef enum {
UIReturnKeyDefault, // 「Return」
UIReturnKeyGo, // 「Go」
UIReturnKeyGoogle, // 「Google」.
UIReturnKeyJoin, // 「Join」.
UIReturnKeyNext, // 「Next」.
UIReturnKeyRoute, // 「Route」.
UIReturnKeySearch, // 「Search」.
UIReturnKeySend, // 「Send」.
UIReturnKeyYahoo, // 「Yahoo」.
UIReturnKeyDone, // 「Done」
UIReturnKeyEmergencyCall, // "Emergency Call」.
} UIReturnKeyType;
要檢測鍵盤上的keychange,您可以註冊名稱:UITextFieldTextDidChangeNotification。可以說你的文本字段是emailTextField和passwordTextField。
首先,你註冊的通知,檢測在文字輸入
// emailTextField
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(check)
name:UITextFieldTextDidChangeNotification
object:emailTextField];
// passwordTextField
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(check)
name:UITextFieldTextDidChangeNotification
object:passwordTextField];
- (void)check {
if ([emailTextField.text length] > 0 && [passwordTextField.text length] > 0) {
// Set the return key here, e.g:
emailTextField.returnKeyType = UIReturnKeyGo;
passwordTextField.returnKeyType = UIReturnKeyGo;
}
else {
// Set the return key here, e.g:
emailTextField.returnKeyType = UIReturnKeyNext;
passwordTextField.returnKeyType = UIReturnKeyNext;
}
}
當返回鍵敲擊,它會調用文本框的委託。你可以做這樣的事情:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
// You can perform selector here, probably after checking if both of the textfields already filled out. E.g:
if ([emailTextField.text length] > 0 && [passwordTextField.text length] > 0) {
[self performSelector:@selector(login)];
}
return YES;
}
UITextInputTraits
協議定義如下UIReturnKeyType
-
typedef enum {
UIReturnKeyDefault,
UIReturnKeyGo,
UIReturnKeyGoogle,
UIReturnKeyJoin,
UIReturnKeyNext,
UIReturnKeyRoute,
UIReturnKeySearch,
UIReturnKeySend,
UIReturnKeyYahoo,
UIReturnKeyDone,
UIReturnKeyEmergencyCall,
} UIReturnKeyType;
針對您的特殊目的,你需要有自定義按鈕,可以查看下面的教程 - http://mhasantanim.wordpress.com/tutorial/iphone/customize-done-button/
另外,如果你使用InterfaceBuilder中,您可以選擇您的UITextField並在屬性檢查器中更改「返回鍵」下拉框中的值。
that worked.But我如何更改返回按鈕的名稱登錄? – FirstTimer
唯一可用的鍵盤返回按鈕是我列在答案上的那些按鈕。如果您想使用自定義文本,則需要使用解決方法@rishi作爲您的問題的評論 - http://mhasantanim.wordpress.com/tutorial/iphone/customize-done-button/ – ewiinnnnn
這適用於我,但只有當你離開現場並回來時,按鈕纔會更新。我嘗試resigningFirstResponder,然後再次成爲FirstResponder,但這不適用於密碼字段。有任何想法嗎? –