ios 在没有文本输入字段的共享扩展中时,关闭共享应用程序打开的键盘

vdgimpew  于 2023-05-23  发布在  iOS
关注(0)|答案(1)|浏览(127)

在应用程序的文本视图/文本字段中选择文本(例如消息)后,您可以从弹出菜单中选择Share以共享文本。由于您在选择/共享时正在编辑文本,因此键盘可见。选择共享目标应用程序后,当目标应用程序的扩展程序出现时,键盘将继续可见。我需要关闭这个键盘,以便屏幕上的其他元素可见且可访问。在我的例子中,我没有可编辑的字段(例如textField/textView)。(即成为第一响应者)
不起作用的常见解决方案:
1.使用知识库中的“解除”按钮-iPhone上不存在

  1. [self.view endEditing:YES]-我的视图中没有子视图是firstResponder
  2. [self.textView resignFirstResponder]-我的视图中没有textView/textField(https://stackoverflow.com/a/28119785/650365
  3. [[[UIApplication sharedApplication] keyWindow] endEditing:YES]-sharedApplication在共享扩展中不可用
  4. [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上共享扩展中的键盘?

7eumitmz

7eumitmz1#

如果您在主界面中看到“First Responder”。
然后在viewWillAppear内部调用self.resignFirstResponder将关闭键盘。

相关问题