UOSextFields编辑和响应者的IOS swift 3崩溃

时间:2017-02-14 17:35:23

标签: ios swift3 keyboard uitextfield first-responder

我在处理UITextFieldkeyboard知名度方面遇到了一个奇怪的问题。

我当前控制器的目的是让用户编辑一些数据,但也读取其他数据。

因此我决定在其中包含一些文本字段,当用户修改某些数据时,会出现一个按钮,并且可以按下它来发送修改。但要阅读其他数据keyboard必须隐藏。

我做了一些研究,找到了一种有效的方法:

  • self.view.endEditing(true)
  • currentTextField.resignFirstResponder()
  • 甚至创建一个“隐藏的UITextField”,并在流程完成后向becomeFirstResponder询问

这些尝试都没有以键盘隐藏结束,但以Optional value崩溃

结束

我现在正在使用Swift 3XCode 8.2.1

如果有人有线索,请提前致谢

3 个答案:

答案 0 :(得分:0)

您的视图控制器需要继承UITextFieldDelegate。实现此协议定义的功能,您应该拥有所需的控件。并且不要忘记设置myTextfield.delegate = self - 或者任何对象实现协议。

一个例子是“DidEndEditing”和类似的。 如果您已经这样做,请提供一些代码以进一步诊断您的问题。

答案 1 :(得分:0)

感谢您的回答,

我从代码开头实现了UITextFieldDelegate,我的所有TextField都使用editingDidBegineditingDidEnd,当我从API调用的结果调用下面的代码时发生了崩溃

self.view.endEditing(true)

我刚刚找到了一种在API调用之前使用此代码成功隐藏键盘的方法。令人遗憾的是,这种新方式避免了在呼叫失败时保持键盘可见的可能性。

答案 2 :(得分:0)

<强> self.view.endEditing(真)

此行不应该崩溃。它只是从UITextfield辞职响应者。你能告诉我你车祸的细节吗?崩溃发生时在日志控制台中写入的内容。据我所知 self.view.endEditing(true)肯定会满足您的要求。