我有相当多的控件分散在我的表格中的许多表格单元格中,我想知道是否有一种更简单的方法来消除键盘,而不必循环遍历所有的控件并将它们全部辞职为第一响应器。我想问题是…我如何得到当前的第一个响应器的键盘?
当前回答
更好的方法是让某些东西“窃取”第一响应者的地位。
因为UIApplication是UIResponder的子类,你可以尝试:
[[UIApplication sharedApplication] becomeFirstResponder]
[[UIApplication sharedApplication] resignFirstResponder]
如果做不到这一点,创建一个新的UITextField与一个零大小的框架,将它添加到一个视图的某处,并做一些类似的事情(成为后跟辞职)。
其他回答
我们很快就能做到
UIApplication.sharedApplication().sendAction("resignFirstResponder", to: nil, from: nil, forEvent: nil)
在swift 3中,您可以执行以下操作
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
这是一个解决方案,使键盘离开时,点击返回在任何文本字段,通过添加代码在一个地方(所以不必为每个文本字段添加一个处理程序):
考虑一下这个场景:
我有一个带有两个文本字段(用户名和密码)的视图控制器。 并且视图控制器实现UITextFieldDelegate协议
我在viewDidLoad中这样做
- (void)viewDidLoad
{
[super viewDidLoad];
username.delegate = self;
password.delegate = self;
}
而视图控制器实现了可选方法as
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
不管你在哪个文本域,只要我按下回车键,它就会消失!
在你的情况下,同样的工作,只要你设置所有的文本字段的委托自我和实现textFieldShouldReturn
你可能也需要覆盖UIViewController disablesautomatickeyboarddismiss来让它在某些情况下工作。如果你有UINavigationController,这可能必须在UINavigationController上完成。
在你的视图控制器的头文件中添加<UITextFieldDelegate>到你的控制器接口的定义中,以便它符合UITextField委托协议…
@interface someViewController : UIViewController <UITextFieldDelegate>
... 在控制器的实现文件(.m)中添加以下方法,或者如果你已经有一个viewDidLoad方法,则在其中添加代码…
- (void)viewDidLoad
{
// Do any additional setup after loading the view, typically from a nib.
self.yourTextBox.delegate = self;
}
... 然后,链接你的文本框到你的实际文本字段
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField
{
if (theTextField == yourTextBox) {
[theTextField resignFirstResponder];
}
return YES;
}
推荐文章
- iPhone上UIView和UILabels的渐变
- 在实现API时,我如何避免在块中捕获自我?
- 从另一个应用程序打开设置应用程序
- 使用NSURLSession发送POST请求
- 自动布局- UIButton的固有大小不包括标题插入
- 如何更改导航栏上“后退”按钮的标题
- 有没有办法从UITableView中移除分隔线?
- 如何在Objective-C中声明类级属性?
- 在Objective-C中@property保留,赋值,复制,非原子
- 我如何在NSAttributedString中创建一个可点击的链接?
- 停止UIWebView垂直“弹跳”?
- 对未渲染的视图进行快照,结果是一个空快照
- 开始使用instancetype而不是id是否有益?
- 改变UISegmentedControl的字体大小
- 我可以强制UITableView隐藏分隔符之间的空单元格吗?