在应用程序的文本视图/文本字段中选择文本(例如消息)后,您可以从弹出菜单中选择Share
以共享文本。由于您在选择/共享时正在编辑文本,因此键盘可见。选择共享目标应用程序后,当目标应用程序的扩展程序出现时,键盘将继续可见。我需要关闭这个键盘,以便屏幕上的其他元素可见且可访问。在我的例子中,我没有可编辑的字段(例如textField/textView)。(即成为第一响应者)
不起作用的常见解决方案:
1.使用知识库中的“解除”按钮-iPhone上不存在
[self.view endEditing:YES]
-我的视图中没有子视图是firstResponder[self.textView resignFirstResponder]
-我的视图中没有textView/textField(https://stackoverflow.com/a/28119785/650365)[[[UIApplication sharedApplication] keyWindow] endEditing:YES]
-sharedApplication
在共享扩展中不可用[theViewController setEditing:NO animated:YES]
Hacky解决方案确实有效(来自https://stackoverflow.com/a/34299724/650365):
- 在storyboard/XIB中添加一个textField到VC中,并在.m文件中设置一个引用出口。(您可以将其置于屏幕外或将其标记为隐藏。)
- 在viewDidLoad中,运行
becomeFirstResponder
。 - 在viewDidAppear中,对同一textField运行
resignFirstResponder
。
如何在不添加额外textField/textViews的情况下关闭iPhone上共享扩展中的键盘?
1条答案
按热度按时间7eumitmz1#
如果您在主界面中看到“First Responder”。
然后在
viewWillAppear
内部调用self.resignFirstResponder
将关闭键盘。