首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解散键盘

问解散键盘
EN

Stack Overflow用户
提问于 2014-02-26 19:55:59
回答 2查看 151关注 0票数 1

因此,我有一个自创建的顶级条形控制器,它正在我的其他控制器视图中实现。我在这顶栏上有个文本框。我想知道,如果用户单击键盘之外的任何一个,那么让键盘退出的最佳方法是什么。我确实有一个点击手势识别器来执行方法拒绝键盘。但是,只有当用户单击键盘外的顶部栏时,此操作才有效。是否有一种方法来设置它,如果用户点击屏幕上的任何一个,那么这将取消键盘?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-26 20:12:28

我要描述的方法是一次黑客攻击,但仍然有效。

  1. 使用UIButton的框架创建透明的view,如下所示: UIButton* overlay = UIButton buttonWithType:UIButtonTypeCustom;overlay.frame = self.view.bounds;overlay.backgroundColor = UIColor clearColor;覆盖附加目标:self action:@selector(hideOverlay:) forControlEvents:UIControlEventTouchDown;[self.view.subviews插入子视图: overlay belowSubview:self.textField];

  1. 创建一个方法hideOverlay来关闭键盘并隐藏透明的: -(HideOverlay):(Id)发送方{ UIView* overlay =发件人;overlay;self.textField resignFirstResponder;}

理想情况下,您应该调用textFieldDidBeginEditing:协议UITextFieldDelegate方法中的第一个代码块,并相应地注册您的调用类。

票数 1
EN

Stack Overflow用户

发布于 2014-02-26 20:12:06

您可以尝试为文本字段提供一个透明的inputAccessoryView,大小可以填充屏幕的其余部分,用于捕捉点击和取消键盘。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22051907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档