2017-09-25 37 views
0

我来到这里一个UITableViewCell类,用于管理在桌子上观察室右侧的UITextField设置。取决于表格,在任何给定时间显示从这些单元格的4到8的任何位置;我使用它们进行单元数据输入(即输入距离,温度等),因此有相当多的逻辑被锁定到单元子类。后按下按钮和文本域开关的UITextField失去焦点(键盘仍然可见)

无论出于何种原因,我发现,如果我执行下列步骤:

1) Tap on a text field to begin editing and bring up the keyboard 
2) Enter in some text 
3) Tap the clear button (which is enabled on the text field) 
4) Tap on another textfield in the same table view 

那么当前的UITextField失去焦点,但第二个文本字段不会获得它。这意味着目前没有UITextField有焦点,但键盘仍然显示在屏幕上......但是没有任何活动的文本字段,它什么也不做,并且不能被解雇(大概是因为没有第一响应者辞职?)。

然后我可以点击另一个文本字段中再次,它会采取集中并开始editing-此时键盘操作变得再次按下回车/ done键将其关闭,并结束编辑如常。

如果我只是在另一个的UITextField挖掘没有首先击中一个按钮,然后在第二的UITextField将立即获得焦点(因为我希望它)。但是,如果尝试在点击除文本字段以外的任何类型的按钮之后切换字段,UITextField之外的按钮按钮将会导致发生此行为。

有谁知道是什么原因造成的?这听起来像响应者链有什么问题,但我不知道问题会是什么或如何解决它。

回答

0

想通了这是什么?

的问题是,我是重装的委托方法,我的自定义单元格被编辑完成后调用表中的数据。显然,在切换UITextFields的过程中重新加载tableview数据会导致第二个文本字段无法获得焦点(但键盘不会被忽略),因此导致了我所看到的问题。

0

首先,你确信在表textfiled有一个唯一的标识符,如标签。 其次,如果你想要一个文本文件丢失的第一响应者,但你仍然应该使另一个文本文件成为第一响应者,但键盘仍然出现。