Xamarin iOS - 使用返回键导航到下一个文本字段

Jon*_*ick 8 ios xamarin

我在Xamarin文档中找不到关于导航到表单上一系列文本字段中的下一个文本字段的任何内容,只有一个关于删除键盘的小教程.

为了简单起见,我使用了txtUsername(标记1)文本字段和txtPassword(标记2)文本字段.当我实现以下代码时,它不会转移到Xamarin Studio.有没有人知道这可以在Xamarin Studio中完成代码的方式,或者我可以将代码从XCode传输到Xamarin Studio.

我使用以下代码:

- (BOOL)textFieldShouldReturn:(UITextField *)txtUsername{
    NSLog(@"textFieldShouldReturn:");
    if (txtUsername.tag == 1) {
        UITextField *txtPassword= (UITextField *)[self.view viewWithTag:2];
        [txtPassword becomeFirstResponder];
    }
    else {
        [txtUsername resignFirstResponder];
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

Dav*_*isk 7

我认为最简单的方法是使用BecomeFirstResponder方法在UITextFields上使用ShouldReturn方法.例如,对于具有用户名和密码UITextFields的登录表单,如下所示(在ViewDidLoad方法中):

Username = new UITextField();
Username.ReturnKeyType = UIReturnKeyType.Next;
Username.KeyboardType = UIKeyboardType.EmailAddress;
Username.ShouldReturn = (tf) =>
    {
        Password.BecomeFirstResponder();
        return true;
    };
View.Add(Username);

Password = new UITextField();
Password.SecureTextEntry = true;
Password.ReturnKeyType = UIReturnKeyType.Go;
Password.ShouldReturn = (tf) =>
    {
        // Do your login
        return true;
    };
View.Add(Password);
Run Code Online (Sandbox Code Playgroud)

当用户名处于活动状态时单击"下一步"时,它将移至"密码"字段.单击密码字段中的"转到"将提交表单.


Sat*_*ran 2

你可以利用这些功能

http://iosapi.xamarin.com/?link=M%3aMonoTouch.UIKit.UIResponder.BecomeFirstResponder

BecomeFirstResponder()
Run Code Online (Sandbox Code Playgroud)

http://iosapi.xamarin.com/?link=M%3aMonoTouch.UIKit.UIResponder.ResignFirstResponder

ResignFirstResponder()
Run Code Online (Sandbox Code Playgroud)

根据文档,您应该像这样添加 textField Delegate 方法

public virtual bool ShouldReturn (UITextField textField)
{

   if (txtUsername.tag == 1) {

    UITextField txtPassword = (UITextField)this.view.ViewWithTag(2);

    txtPassword.BecomeFirstResponder();
   }
   else {
    txtUsername.ResignFirstResponder();
       }
return true;
}
Run Code Online (Sandbox Code Playgroud)