我有2个文本字段,用于登录ID和密码。 当用户点击电子邮件ID时,他们的键盘类型是电子邮件,密码是其默认值。 他们完成了两个键盘按钮,解开了键盘。 我想要做的是,一旦用户填写了id和密码,他们的DONE按钮应该更改为“LOGIN”,我可以在它上面执行选择器方法登录。
这可行吗?
由于
答案 0 :(得分:8)
如果您使用的是标准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;
要检测键盘上的键更改,您可以注册名称: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;
}
}
当点击返回键时,它将调用textfield delegate。你可以这样做:
- (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;
}
答案 1 :(得分:3)
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/
答案 2 :(得分:1)
此外,如果您使用InterfaceBuilder,您可以选择您的UITextField,并在属性检查器中更改“返回键”下拉框的值。