Ios 切换键盘类型清除文本字段文本
我刚刚在我正在开发的一个应用程序中发现了一个bug,它似乎是iOS 8特有的,但我无法找出原因或解决方案,因此任何建议都将不胜感激 问题是我有一个用户输入密码的视图。当文本字段处于活动状态时,最初我们会显示一个数字键盘,键盘上方有一个按钮,用于切换到字母键盘。下面是该按钮的代码,用于在qwerty键盘和数字键盘之间切换 `UIButton*toggleButton=发送方Ios 切换键盘类型清除文本字段文本,ios,objective-c,iphone,xcode,ios8,Ios,Objective C,Iphone,Xcode,Ios8,我刚刚在我正在开发的一个应用程序中发现了一个bug,它似乎是iOS 8特有的,但我无法找出原因或解决方案,因此任何建议都将不胜感激 问题是我有一个用户输入密码的视图。当文本字段处于活动状态时,最初我们会显示一个数字键盘,键盘上方有一个按钮,用于切换到字母键盘。下面是该按钮的代码,用于在qwerty键盘和数字键盘之间切换 `UIButton*toggleButton=发送方 if ([[UIDevice currentDevice].systemVersion floatValue] >=
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0f)
{
[self.passcodeField resignFirstResponder];
}
if (self.passcodeField.keyboardType == UIKeyboardTypeNumberPad) {
self.passcodeField.keyboardType = UIKeyboardTypeNamePhonePad;
[toggleButton setTitle: @"123" forState:UIControlStateNormal];
}
else {
self.passcodeField.keyboardType = UIKeyboardTypeNumberPad;
[toggleButton setTitle: @"ABC" forState:UIControlStateNormal];
}
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0f)
{
[self.passcodeField becomeFirstResponder];
}
[self.passcodeField reloadInputViews];`
问题是,如果我在数字键盘上键入“123”,切换到qwerty键盘,只要我键入一个字符,它就会清除原始输入,并用新字符替换它,而不是附加它。我不知道为什么,因为我的视图控制器中没有清除passcodeField中文本的代码。有人知道这是什么原因吗
提前感谢…您的文本字段安全吗?
如果是这样,我认为您的问题在于调用resignFirstResponder
和成为firstresponder
。
这是安全文本字段的自然行为,当它激活时,它会删除以前输入的所有文本。“这不是一个bug,这是一个功能!”:)这不是一个很好的功能。这是一个安全的文本字段,所以这可能是问题所在。有什么办法解决这个问题吗?如果我没有做出辞职并成为第一响应者的决定,在iOS8中,键盘不会改变,所以必须在那里。我完全理解你,我们在通过编程从不安全模式切换到安全模式时遇到了同样的问题。正如我在谷歌上搜索的那样,没有“干净”的解决方案,但你总是可以在辞职前记住文本,然后再分配。