在应用程序的文本视图/文本字段中选择文本(例如消息)后,您可以从弹出菜单中选择
Share
来共享文本。由于您在选择/共享时正在编辑文本,因此键盘可见。选择共享目标应用程序后,当目标应用程序的扩展出现时,键盘将继续可见。我需要关闭此键盘,以便屏幕上的其他元素可见且可访问。就我而言,扩展中出现的自定义视图控制器中没有可编辑字段(例如 textField/textView)。 (即成为第一响应者)
常见的不起作用的解决方案:
[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):
becomeFirstResponder
。resignFirstResponder
。如何在 iPhone 上的共享扩展中关闭键盘而不添加额外的文本字段/文本视图?
您的
ShareViewController
继承自 SLComposeServiceViewController
。这就是导致键盘出现的原因,它有一个 textView
。
将
SLComposeServiceViewController
替换为简单的 UIViewController
,键盘将不会出现。