Ios 自定义键盘';s";“下一步”;及;“完成”;返回按钮
现在我有一个简单的登录视图控制器。它有两个文本字段,一个用于用户名,一个用于密码。我想为这两个文本字段的键盘添加以下功能:Ios 自定义键盘';s";“下一步”;及;“完成”;返回按钮,ios,objective-c,uitextfield,uikeyboard,ibaction,Ios,Objective C,Uitextfield,Uikeyboard,Ibaction,现在我有一个简单的登录视图控制器。它有两个文本字段,一个用于用户名,一个用于密码。我想为这两个文本字段的键盘添加以下功能: 当用户在用户名文本字段中输入用户名后,他们应该能够按下“下一步”返回键,该键将引导他们进入第二个文本字段输入密码 当用户输入完密码并按下键盘的“完成”返回键时,我想执行我设置的iAction 以下是当用户按下密码文本字段中的“完成”返回键时,我要执行的iAction代码: -(IBAction)didTapLoginButton:(id)sender { [sel
-(IBAction)didTapLoginButton:(id)sender {
[self textFieldShouldReturn:_usernameEntry];
NSString *user = [_usernameEntry text];
NSString *pass = [_passwordEntry text];
if ([user length] < 4 || [pass length] < 4) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Invalid Entry" message:@"Username and Password must both be at least 4 characters long." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alert show];
} else {
[_activityIndicator startAnimating];
[PFUser logInWithUsernameInBackground:user password:pass block:^(PFUser *user, NSError *error) {
[_activityIndicator stopAnimating];
if (user) {
NSLog(@"Successful login");
//[self performSegueWithIdentifier:@"loginToMainAppSegue" sender:self];
[self performSegueWithIdentifier:@"loginToMediaCaptureVC" sender:self];
} else {
NSLog(@"%@",error);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Failed." message:@"Invalid Username and/or Password." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alert show];
}
}];
}
}
-(iAction)didTapLoginButton:(id)发送方{
[self-textFieldShouldReturn:_usernameEntry];
NSString*user=[\u usernameEntry text];
NSString*pass=[[u passwordEntry text];
如果([用户长度]<4 | |[传递长度]<4){
UIAlertView*alert=[[UIAlertView alloc]initWithTitle:@“无效输入”消息:@“用户名和密码必须至少有4个字符长。”委托:自取消按钮提示:@“好”其他按钮提示:无];
[警报显示];
}否则{
[_ActivityIndicatorStartAnimating];
[PFUser logInWithUsernameInBackground:用户密码:密码块:^(PFUser*用户,NSError*错误){
[_activityIndicator停止设置动画];
如果(用户){
NSLog(@“成功登录”);
//[self-PerformsgueWithIdentifier:@“loginToMainAppSegue”发件人:self];
[self-PerformsgueWithIdentifier:@“loginToMediaCaptureVC”发件人:self];
}否则{
NSLog(@“%@”,错误);
UIAlertView*alert=[[UIAlertView alloc]initWithTitle:@“登录失败”。消息:@“用户名和/或密码无效”。委托:自我取消按钮:@“好”其他按钮:无];
[警报显示];
}
}];
}
}
我已经将我的视图控制器设置为代理,两个文本字段都工作得很好,但是我想添加上面列出的额外功能
如果有区别的话,文本字段和键盘不是通过编程创建的。它们是在故事板上创建的
感谢您的帮助。步骤1-为两个文本字段都添加标记 步骤2-检查
-(BOOL)textField中的标记应返回:(UITextField*)textField代码>
如果第一个用户名处于活动状态,则使密码文本字段成为第一响应者。
如果密码字段处于活动状态退出第一响应者
-(BOOL)textFieldShouldReturn:(UITextField*)textField;
{
if([_txtFieldUserName isFirstResponder]){
[_txtFieldPassword becomeFirstResponder];
}
else if ([_txtFieldPassword isFirstResponder]){
[_txtFieldPassword resignFirstResponder];
}
}
步骤1-为两个文本字段都添加标记
步骤2-检查-(BOOL)textField中的标记应返回:(UITextField*)textField代码>
如果第一个用户名处于活动状态,则使密码文本字段成为第一响应者。
如果密码字段处于活动状态退出第一响应者
-(BOOL)textFieldShouldReturn:(UITextField*)textField;
{
if([_txtFieldUserName isFirstResponder]){
[_txtFieldPassword becomeFirstResponder];
}
else if ([_txtFieldPassword isFirstResponder]){
[_txtFieldPassword resignFirstResponder];
}
}
对于UITextField或可编辑UITextVie,您还可以执行以下操作:
[myTextField setReturnKeyType:UIReturnKeyNext];
您还可以在Interface Builder中的文本字段/视图的文本输入特征下配置此选项
更新
在Xamarin.iOS或Monotouch中:
myTextField.ReturnKeyType = UIReturnKeyType.Next;
对于UITextField或可编辑UITextVie,您还可以执行以下操作:
[myTextField setReturnKeyType:UIReturnKeyNext];
您还可以在Interface Builder中的文本字段/视图的文本输入特征下配置此选项
更新
在Xamarin.iOS或Monotouch中:
myTextField.ReturnKeyType = UIReturnKeyType.Next;
你能提供更多的代码吗?我明白你的意思,但我不知道如何键入代码。没关系,我刚知道。谢谢帕万的帮助!你能提供更多的代码吗?我明白你的意思,但我不知道如何键入代码。没关系,我刚知道。谢谢帕万的帮助!