IQKeyBoardManager :隐藏特定文本字段的键盘
IQKeyBoardManager : Hide keyboard for a specific textfield
在我的应用程序中,我有一个表单,用户可以在其中填写 his/her 信息,该表单有一些文本字段,其中有一个用户可以在其中 select 他们的国家/地区。此文本文件是一个下拉列表,当它处于活动状态时会显示一个下拉列表(表格视图),其中包含 select 的国家/地区列表。我创建了一个演示项目,以重现该问题并在此处分享。
在此演示中,我添加了 3 个文本字段,当用户转到第二个文本字段时,使用键盘上的 next
按钮,将显示一个表格视图。现在我想要实现的是,当显示下拉列表视图时,我的键盘应该隐藏。
我花了很长时间试图弄清楚这一点,但没有成功。
这是演示项目的 link:
https://github.com/tejaskutal/IQKeyboardManagerDemo
非常感谢任何帮助。
P.S:由于某些奇怪的原因,当您在第一个文本字段处于活动状态时单击 next
时,它会先跳转到第三个文本字段,然后转到 next
之后的第二个文本字段被再次点击。但是,这与原来的问题无关,所以我就把它留在那里了。
您可以使用 UITextField
的委托并实现 textFieldShouldBeginEditing
。像
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
if textField == theTextFieldToIgnore {
view.endEditing(true)
return false
}
}
至于您的 textField 链接,您应该实施 textFieldShouldReturn
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == firstOne {
textField.resignFirstResponder()
secondOne.becomeFirstResponder()
}
return true
}
Return key Action which textfield you want to resign
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[self.yourTf resignFirstResponder];
}
无需处理不同的委托。在你的 viewDidload
中你可以做类似的事情,
yourTextField.inputView = UIView.init(frame: CGRect.zero)
yourTextField.inputAccessoryView = UIView.init(frame: CGRect.zero)
因此,不会出现该文本字段键盘或工具栏。
在我的应用程序中,我有一个表单,用户可以在其中填写 his/her 信息,该表单有一些文本字段,其中有一个用户可以在其中 select 他们的国家/地区。此文本文件是一个下拉列表,当它处于活动状态时会显示一个下拉列表(表格视图),其中包含 select 的国家/地区列表。我创建了一个演示项目,以重现该问题并在此处分享。
在此演示中,我添加了 3 个文本字段,当用户转到第二个文本字段时,使用键盘上的 next
按钮,将显示一个表格视图。现在我想要实现的是,当显示下拉列表视图时,我的键盘应该隐藏。
我花了很长时间试图弄清楚这一点,但没有成功。
这是演示项目的 link:
https://github.com/tejaskutal/IQKeyboardManagerDemo
非常感谢任何帮助。
P.S:由于某些奇怪的原因,当您在第一个文本字段处于活动状态时单击 next
时,它会先跳转到第三个文本字段,然后转到 next
之后的第二个文本字段被再次点击。但是,这与原来的问题无关,所以我就把它留在那里了。
您可以使用 UITextField
的委托并实现 textFieldShouldBeginEditing
。像
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
if textField == theTextFieldToIgnore {
view.endEditing(true)
return false
}
}
至于您的 textField 链接,您应该实施 textFieldShouldReturn
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == firstOne {
textField.resignFirstResponder()
secondOne.becomeFirstResponder()
}
return true
}
Return key Action which textfield you want to resign
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[self.yourTf resignFirstResponder];
}
无需处理不同的委托。在你的 viewDidload
中你可以做类似的事情,
yourTextField.inputView = UIView.init(frame: CGRect.zero)
yourTextField.inputAccessoryView = UIView.init(frame: CGRect.zero)
因此,不会出现该文本字段键盘或工具栏。