当UIKeyboard在视野中时是否可以更改UITextInputTraits?

Nic*_*ght 6 iphone keyboard textinput

我想在键盘使用时更改键盘的UITextInputTraits ....

理想的代码看起来像这样:

- (IBAction)nameTextDidChange:(UITextField *)sender {
    if ([sender.text isEqualToString:@""]) {
        sender.returnKeyType = UIReturnKeyDone;
    } else {
        sender.returnKeyType = UIReturnKeySearch;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以...我有一个不同的"返回"按钮用于空字符串,因为我做了一个带有一些文本的字符串.我上面发布的代码不起作用,键盘保留了它的原始文本输入特性.

任何人的想法,或者这是否永远不会工作无论我怎么努力?

干杯!

缺口.

感谢Deepak,这是我实际使用的代码:

if ([sender.text isEqualToString:@""]) {
    sender.returnKeyType = UIReturnKeyDone;

    [sender resignFirstResponder];
    [sender becomeFirstResponder];
} else if (sender.returnKeyType == UIReturnKeyDone) {

    NSString *cachedLetter = sender.text;

    sender.returnKeyType = UIReturnKeySearch;

    [sender resignFirstResponder];
    [sender becomeFirstResponder];

    sender.text = cachedLetter;
}
Run Code Online (Sandbox Code Playgroud)

Dee*_*olu 5

您可以通过在方法的末尾添加以下行来完成此工作.

if ([textField.text isEqualToString:@""]) {
    textField.returnKeyType = UIReturnKeyDone;

    [textField resignFirstResponder];
    [textField becomeFirstResponder];
} else if (textField.returnKeyType == UIReturnKeyDone) {
    textField.returnKeyType = UIReturnKeySearch;

    [textField resignFirstResponder];
    [textField becomeFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

这应该工作.

你基本上打开和关闭它,以便文本输入改变.第二个是确保只在需要时翻转.