【问题标题】:How to change Keyboard's return type,iPhone如何更改键盘返回类型,iPhone
【发布时间】:2012-06-26 10:35:10
【问题描述】:

我有 2 个文本字段。我正在检查两个文本字段的填充时间,然后,我将键盘返回按钮更改为“开始”。否则,它将保持为“返回”。 它工作正常,只有当我点击文本字段时,键盘的返回类型才会改变。 一旦两个文本字段都非空,我想自动更改它。

我试着输入我的代码

if ([txtEmail.text length] > 0 && [txtPass.text length] > 0) {
    // Set the return key here, e.g:
    txtEmail.returnKeyType = UIReturnKeyGo;
    txtPass.returnKeyType = UIReturnKeyGo;
}
else {
    // Set the return key here, e.g: 
    txtEmail.returnKeyType = UIReturnKeyDefault;
    txtPass.returnKeyType = UIReturnKeyDefault;
}

- (void)textFieldDidBeginEditing:(UITextField *)textField{}

但它不适合我。

任何想法,我如何将返回按钮从返回更改为 Go,当他的两个字段都非空时,自动,用户没有点击任何文本字段来更改它。

【问题讨论】:

  • 也许你可以尝试使用方法 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

标签: iphone ipad


【解决方案1】:

为两个文本字段设置委托。然后在创建 UItextFields 引用后将代码放入 viewDidLoad 一次

if ([txtEmail.text length] > 0 && [txtPass.text length] > 0) 
{
txtEmail.returnKeyType = UIReturnKeyGo;
txtPass.returnKeyType = UIReturnKeyGo;
}
else 
{

txtEmail.returnKeyType = UIReturnKeyDefault;
txtPass.returnKeyType = UIReturnKeyDefault;
}

【讨论】:

    【解决方案2】:

    textFieldDidBeginEditting在编辑开始之前触发,所以很明显那里的文字没有改变。

    您需要做的是检测 key press 以发现更改并基于该更改 returnKey 类型。看到这个问题:How can I detect a KeyPress event in UITextField? - 它处理 key press 事件。

    【讨论】:

      【解决方案3】:
      //have you set the delegate of your textField if not then please set it.. 
      
      txtEmail.delegate = self;
      txtPass.delegate = self;
      

      【讨论】:

        【解决方案4】:

        签入你的头文件UITextFieldDelegate协议和

        不要忘记将委托设置为自己。

        txtEmail.delegate = self;
        txtPass.delegate = self;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-08-06
          • 2011-06-09
          • 2011-08-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-12
          相关资源
          最近更新 更多