Ios 在没有触摸手势识别器的情况下关闭键盘
我有一个视图,它的上半部分有两个文本字段,下半部分有一个tableview。如果在视图中添加触摸手势识别器,则表格行选择将不再有效。其中一个文本字段使用默认键盘,但另一个使用十进制键盘。我可以在第一个文本视图中使用return或“Done”,但十进制键盘没有这个选项Ios 在没有触摸手势识别器的情况下关闭键盘,ios,swift,Ios,Swift,我有一个视图,它的上半部分有两个文本字段,下半部分有一个tableview。如果在视图中添加触摸手势识别器,则表格行选择将不再有效。其中一个文本字段使用默认键盘,但另一个使用十进制键盘。我可以在第一个文本视图中使用return或“Done”,但十进制键盘没有这个选项 我已经解决了这个问题,在视图中添加了一个“解散键盘”按钮,但我觉得它很难看。还有其他方法吗?解决此问题的一种方法是,将根视图(这是两个文本字段和表格视图的超级视图)转换为UIControl。 然后将触地或触地内事件处理程序添加到控件
我已经解决了这个问题,在视图中添加了一个“解散键盘”按钮,但我觉得它很难看。还有其他方法吗?解决此问题的一种方法是,将根视图(这是两个文本字段和表格视图的超级视图)转换为
UIControl
。
然后将触地
或触地内
事件处理程序添加到控件,这将关闭键盘
我更喜欢使用UIControl而不是UIGestureRecognitizer来解决此类问题,因为它优雅地处理事件并遵守层次结构,因此,例如,如果UITableView是其子视图,则UIControl不会干扰UITableView上的滚动和触摸事件
附录:
您还可以添加一个自定义视图,作为文本字段的inputAccessoryView
,该文本字段又可以包含一个键盘按钮。此视图将不是视图层次结构的一部分,但顾名思义,它将是键盘的附件视图。例如,它可以有一个“X”按钮来关闭键盘
使用输入附件视图的方法是:
// this needs to be an instance variable
self.kbAccessoryView = UIView() //add button, add action etc.
self.firstTextfield.inputAccessoryView = kbAccessoryView
self.secondTextfield.inputAccessoryView = kbAccessoryView
解决此问题的一种方法是,将根视图(这是两个文本字段和表格视图的超级视图)转换为
UIControl
。
然后将触地
或触地内
事件处理程序添加到控件,这将关闭键盘
我更喜欢使用UIControl而不是UIGestureRecognitizer来解决此类问题,因为它优雅地处理事件并遵守层次结构,因此,例如,如果UITableView是其子视图,则UIControl不会干扰UITableView上的滚动和触摸事件
附录:
您还可以添加一个自定义视图,作为文本字段的inputAccessoryView
,该文本字段又可以包含一个键盘按钮。此视图将不是视图层次结构的一部分,但顾名思义,它将是键盘的附件视图。例如,它可以有一个“X”按钮来关闭键盘
使用输入附件视图的方法是:
// this needs to be an instance variable
self.kbAccessoryView = UIView() //add button, add action etc.
self.firstTextfield.inputAccessoryView = kbAccessoryView
self.secondTextfield.inputAccessoryView = kbAccessoryView
您可以使用此链接向此类键盘添加“解除”或“完成”按钮:您可以使用此链接向此类键盘添加“解除”或“完成”按钮:您只需使用一行代码即可解除键盘
self.view.endEditing(true)
检查一下这个你可以用一行代码简单地关闭键盘
self.view.endEditing(true)
还可以查看此功能您可以随时在键盘上添加一个工具栏,并带有“关闭”选项;它并不丑陋;或者,您可以将您的基本
UIView
更改为UIController
,并可以处理触地事件并辞去第一响应者。这听起来像是一个UXUI问题,值得截图。这不是一个堆栈溢出的问题。这对堆栈来说很好。让我们帮助Paul,而不是告诉他去哪里。只在键盘显示时添加手势…您始终可以在键盘上添加工具栏,并带有“关闭”选项;它并不丑陋;或者,您可以将您的基本UIView
更改为UIController
,并可以处理触地事件并辞去第一响应者。这听起来像是一个UXUI问题,值得截图。这不是一个堆栈溢出的问题。这对堆栈来说很好。让我们帮助Paul,而不是告诉他去哪里。只在键盘显示时添加手势…伟大的解决方案,易于实现!伟大的解决方案,易于实施!