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

时间:2016-11-16 23:11:46

标签: ios objective-c keyboard ios-app-extension

在应用程序的文本视图/文本字段中选择文本(例如,消息)后,您可以从弹出菜单中选择Share以共享文本。由于您在选择/共享时编辑文本,因此键盘可见。选择共享目标应用后,当目标应用的扩展程序出现时,键盘将继续显示。我需要关闭此键盘,以便屏幕上的其他元素可见且可访问。在我的情况下,我在扩展中出现的自定义视图控制器中没有可编辑的字段(例如textField / textView)。 (即成为第一个响应者)

通常不起作用的解决方案:

  1. 使用KB中的“关闭”按钮 - 在iPhone上不存在
  2. [self.view endEditing:YES] - 我的观点中没有子视图是firstResponder
  3. [self.textView resignFirstResponder] - 我的视图中没有textView / textField(https://stackoverflow.com/a/28119785/650365
  4. [[[UIApplication sharedApplication] keyWindow] endEditing:YES] - sharedApplication在分享扩展程序中不可用
  5. [theViewController setEditing:NO animated:YES]
  6. 可行的Hacky解决方案(来自https://stackoverflow.com/a/34299724/650365):

    • 在storyboard / XIB中向VC添加textField,并在.m文件中设置参考插座。 (您可以将其放在屏幕外或将其标记为隐藏。)
    • 在viewDidLoad中,运行becomeFirstResponder
    • 在viewDidAppear中,在同一个textField上运行resignFirstResponder

    如何在不添加额外textField / textViews的情况下关闭iPhone上的共享扩展程序中的键盘?

0 个答案:

没有答案