在不知道第一响应者的情况下在iPhone上隐藏输入键盘?

时间:2010-07-01 20:03:38

标签: objective-c iphone

我见过this question,但问题是如何知道哪个textView是第一个响应者? This question looked promising找出第一个响应者,但事实证明它调用私有API。有没有办法隐藏键盘或找出第一响应者作为键盘的一个人?

3 个答案:

答案 0 :(得分:25)

很简单:

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

看看UIView Class Reference

答案 1 :(得分:4)

[textView isFirstResponder]应该告诉你它是否是第一个响应者。我想你可以遍历你班级的所有文本字段来检查它是否是第一个响应者。

或者你可以在每个textField上调用resignFirstResponder,它仍然可以工作。

答案 2 :(得分:3)

我相信你应该选择一些东西成为第一个响应者,这可能是它本身没有做任何事情,并在其上调用-[UIResponder becomeFirstResponder]。这适用于UIViewController或UIWindow(我认为你可以通过-[UIView window]),因为这些将具有最相似的响应者链,并且会使当前的firstResponder失去其firstResponder状态,从而解除键盘,但是也不会调出键盘,因为它不会是UITextField。