• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 在编辑 UITextField 的同时更改返回键类型?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:37:20 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap