我有一个视图,在视图的顶部有两个文本字段,在下半部分有一个tableview。如果我向视图添加触摸手势识别器,则表格行选择不再有效。其中一个文本字段使用默认键盘,但另一个使用十进制键盘。我可以使用return或" Done"在第一个textview的位置,但小数位垫没有该选项。
我通过添加" Dismiss Keyboard"解决了这个问题。按钮到视图,但对我来说感觉很难看。还有另一种方式吗?
答案 0 :(得分:1)
解决此问题的一种方法是将根视图(两个文本域和tableview的超视图)转换为UIControl
。
然后向控件添加touchDown
或touchUpInside
事件处理程序,这将解除键盘。
我更喜欢使用UIControl而非UIGestureRecognizer来解决此类问题,因为它优雅地处理事件并遵循层次结构,因此,例如,如果UITableView是其子视图,UIControl将不会干扰UITableView上的滚动和触摸事件。
<强>附录:强>
您还可以将自定义视图添加为文本字段的inputAccessoryView
,而这些文本字段又可以包含键盘解除按钮。此视图不是视图层次结构的一部分,但顾名思义,它将是键盘的附件视图。例如,它可以有一个&#39; X&#39;按钮关闭键盘。
使用输入附件视图的方法是:
// this needs to be an instance variable
self.kbAccessoryView = UIView() //add button, add action etc.
self.firstTextfield.inputAccessoryView = kbAccessoryView
self.secondTextfield.inputAccessoryView = kbAccessoryView
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以添加&#39; Dismiss&#39;或者&#39;完成&#39;使用此链接按下此类键盘:https://github.com/chrisamanse/iOS-KeyboardAccessoryToolbar/tree/master/KeyboardAccessoryToolbar