Ios 当键盘处于';它已经看得见了
当我有超过1个UITextField时,我无法关闭键盘 我有两个文本字段:Ios 当键盘处于';它已经看得见了,ios,swift,uitextfield,uikeyboard,uitextviewdelegate,Ios,Swift,Uitextfield,Uikeyboard,Uitextviewdelegate,当我有超过1个UITextField时,我无法关闭键盘 我有两个文本字段:TextField1和TextField2,我给它们分别加上标签1和2 我想让if tag等于2,然后它隐藏键盘,如果我触摸tag等于1的textfield,键盘再次可见,这是我的代码工作,但当我将其返回时,代码不符合我的要求,我首先触摸TextField1,然后触摸TextField2键盘仍然可见且不隐藏 我的代码是这样的 func textFieldDidBeginEditing(textField: UITextFi
TextField1
和TextField2
,我给它们分别加上标签1
和2
我想让if tag等于2,然后它隐藏键盘,如果我触摸tag等于1的textfield,键盘再次可见,这是我的代码工作,但当我将其返回时,代码不符合我的要求,我首先触摸TextField1
,然后触摸TextField2
键盘仍然可见且不隐藏
我的代码是这样的
func textFieldDidBeginEditing(textField: UITextField) {
if (textField.tag == 2) {
self.view.endEditing(false)
textField.resignFirstResponder()
} else {
self.view.endEditing(true)
}
}
我还尝试使用事件,如编辑确实开始了
和编辑更改了
,但不能像我想要的那样做
请帮助我如何在键盘已可见时隐藏它请尝试以下代码
-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField.tag == 2)
{
[[self.view viewWithTag:1] resignFirstResponder];
return false;
}
else
{
return true;
}
}
您也可以像使用下面的textfield委托方法一样执行此操作
func textFieldShouldReturn(textField: UITextField) -> Bool
{
if (textField == self.TextField1) {
self.TextField2.becomeFirstResponder()
}
else {
textField.resignFirstResponder()
self.view.endEditing(true)
}
return true
}
希望这能对您有所帮助。试试这个:
func textFieldDidBeginEditing(textField: UITextField) {
if (textField.tag == 2) {
self.view.endEditing(true)
} else {
textField.becomeFirstResponder()
}
}
self.view.endEditing(true)
不会显示键盘,它实际上会试图隐藏它,迫使第一响应者辞职。我认为您没有在这个类上设置UITextFieldDelgate,所以在viewDidLoad()中
然后添加文本字段didbeginediting,如下所示:-
func textFieldDidBeginEditing(textField: UITextField) {
if (textField.tag == 2) {
self.view.endEditing(true)
} else {
textField.becomeFirstResponder()
}
}为什么您要辞去第一响应者的职务,或者在did begin editing委托方法中结束编辑?这难道不会使输入文本变得不可能吗?@jrturton我想当我触摸我的文本字段2时,它仍然有闪烁的光标,但没有显示键盘为什么?用户是否有其他方法将文本输入文本字段?请参阅@simplebob answer。这就是你问题的解决办法。self.view.endEditing(false)永远不会关闭键盘。我在编写代码时输入了一个错误,代码已经是compare tag with 2
func textFieldDidBeginEditing(textField: UITextField) {
if (textField.tag == 2) {
self.view.endEditing(true)
} else {
textField.becomeFirstResponder()
}