ios8 – 在reloadInputViews调用后,UITextField不再重新加载keyboardType

ios8 – 在reloadInputViews调用后,UITextField不再重新加载keyboardType,第1张

概述在iOS 7中,我可以改变键盘类型,而它是第一个响应器(即时): if (textField.text.length > 2) { textField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;}else{ textField.keyboardType = UIKeyboardTypeDefault;}[te 在iOS 7中,我可以改变键盘类型,而它是第一个响应器(即时):
if (textFIEld.text.length > 2) {    textFIEld.keyboardType = UIKeyboardTypeNumbersAndPunctuation;}else{    textFIEld.keyboardType = UIKeyboardTypeDefault;}[textFIEld reloadinputVIEws];// (Omitting some efficIEncy stuff to keep example to bare bones)

这不再适用于Xcode 6 / iOS 8.文档主要反映了有关自定义键盘的更改.

使用辞职/成为第一反应者(仍然)工作:

[textFIEld resignFirstResponder];// Make keyboard change[textFIEld becomeFirstResponder];

但它只是感觉像一个过度的杀戮.它正在撕裂和重建一堵墙,只是为了更换一张照片.

这里有一个相关的帖子:
UITextView does not seem to implement reloadInputViews

但似乎解决方案(在注释中)显然是将其声明为UITextVIEw,而不是UIResponder会影响运行时的行为.

在我的情况下,它是一个UITextFIEld,我试图转换到UITextVIEw以防万一.不去

再次提到它在iOS7 / Xcode5下运行良好.

我不知道这是Xcode 6的“beta”问题,还是iOS 8的设计变更.

解决方法 我发现同样的问题.最好检查textFIEld是否已经是firstResponder.
[textFIEld reloadinputVIEws]; // does not work on iOS8 !if ([textFIEld isFirstResponder]) {    [textFIEld resignFirstResponder];    [textFIEld becomeFirstResponder];}

不是一个干净的方式,但它的作品.

总结

以上是内存溢出为你收集整理的ios8 – 在reloadInputViews调用后,UITextField不再重新加载keyboardType全部内容,希望文章能够帮你解决ios8 – 在reloadInputViews调用后,UITextField不再重新加载keyboardType所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1098168.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存