Objective c 在不知道第一响应者的情况下隐藏iPhone上的输入键盘?
我看到了,但问题是如何知道哪个textView是第一响应者?找出第一个响应者,但结果是它调用了私有API。有没有办法隐藏键盘或找出第一响应者是谁拥有键盘?Objective c 在不知道第一响应者的情况下隐藏iPhone上的输入键盘?,objective-c,iphone,Objective C,Iphone,我看到了,但问题是如何知道哪个textView是第一响应者?找出第一个响应者,但结果是它调用了私有API。有没有办法隐藏键盘或找出第一响应者是谁拥有键盘?[textView isFirstResponder]应该告诉你是不是第一响应者。我想你可以在你的类中循环所有的文本字段来检查它是否是第一个响应者 或者你可以在每个文本字段上调用resignFirstResponder,它仍然可以工作。我认为你应该选择一些东西来成为第一响应者,这些东西本身可能不会做任何事情,然后在上面调用-[UIRespond
[textView isFirstResponder]
应该告诉你是不是第一响应者。我想你可以在你的类中循环所有的文本字段来检查它是否是第一个响应者
或者你可以在每个文本字段上调用resignFirstResponder,它仍然可以工作。我认为你应该选择一些东西来成为第一响应者,这些东西本身可能不会做任何事情,然后在上面调用
-[UIResponder becomeFirstResponder]
。这将与UIViewController或UIWindow(我认为可以通过-[UIView window]
获得)配合使用,因为它们具有最相似的响应程序链,并且会使当前的第一响应程序失去其第一响应程序状态,关闭键盘,但也不会打开键盘,因为它不是UITextField。很容易:
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
看一看。事实上,仔细想想,你答案的第二部分让我意识到,多亏了我设计精良的应用程序:),我可以做到这一点。在将其标记为已接受之前,我必须验证这一点。另一方面,如果你链接到一些文档,这对我来说会更好,因此。UIWindow是UIView的一个子类;它继承了UIView中的
endEditing
方法。对我来说效果非常好-我的用例是在UIView上有4个不同的TableView,它们的隐藏属性由UISegmentedController打开和关闭,一次只显示一个。-如果有人更改为其他表视图,我需要让键盘离开。可能的重复也请参见