OGeek|极客世界-中国程序员成长平台

标题: ios - 在编辑 UITextField 的同时更改返回键类型? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:37
标题: ios - 在编辑 UITextField 的同时更改返回键类型?

IM 在更改返回键类型时遇到问题,同时仍在编辑我的 View 的文本字段。因此,当用户单击文本字段时,我有一些更改键盘返回类型的检查,当我更改键盘时,这些检查被放置在 - (void)textFieldDidBeginEditingUITextField *)textField 中此处的返回键代码工作正常。我只是像 [textField setReturnKeyType:UIReturnKeyDone]; 那样更改键盘的重新运行键。所以有2个文本字段用户名和密码。如果两个文本字段中都有文本我想将返回键更改为 DONE 如果只有一个文本字段中有文本我想将其更改为 NEXT 所以我可以在文本字段之间来回跳转。所以现在我在 - (BOOL)textFieldUITextField *)textField shouldChangeCharactersInRangeNSRange)range replacementStringNSString *)string 中进行了一些检查和平衡。然而,我放置在 textFieldDidBeginEditing 中的相同代码在此函数中不起作用。我读了一堆帖子,他们都说要删除文本字段作为第一响应者,然后设置返回键并再次成为响应者,但这会扰乱我当前在各个方法中的流程。我还读到我必须在设置返回键后调用 [textfield reloadInputFields] ,但这又不起作用。你会认为苹果现在已经修复了这样的错误。无论如何,这里有人有意见吗?



Best Answer-推荐答案


我必须实现一个添加标签逻辑,该逻辑需要根据输入到 UITextField 中的文本来更改键盘返回键。找到如何更改返回键很容易,但是当我开始测试时,我注意到这个解决方案只适用于 iOS10,但不适用于 iOS9。在花了一些时间并做了一些研究之后,我想出了这个解决方法,它不是最好的,但至少它有效。

if #available(iOS 10.0, *) {
    textField.reloadInputViews()
} else {
    textField.keyboardType = .numberPad
    textField.reloadInputViews()
    textField.keyboardType = .default
    textField.reloadInputViews()
}

关于ios - 在编辑 UITextField 的同时更改返回键类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33487369/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4