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

问题描述 投票:0回答:1

在应用程序的文本视图/文本字段中选择文本(例如消息)后,您可以从弹出菜单中选择

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

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

  1. 使用知识库中的“关闭”按钮 - 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]

确实有效的 Hacky 解决方案(来自 https://stackoverflow.com/a/34299724/650365):

  • 将文本字段添加到故事板/XIB 中的 VC 中,并在 .m 文件中设置参考出口。 (您可以将其放置在屏幕外或将其标记为隐藏。)
  • 在 viewDidLoad 中,运行
    becomeFirstResponder
  • 在 viewDidAppear 中,在同一个文本字段上运行
    resignFirstResponder

如何在 iPhone 上的共享扩展中关闭键盘而不添加额外的文本字段/文本视图?

ios objective-c keyboard ios-app-extension
1个回答
0
投票

您的

ShareViewController
继承自
SLComposeServiceViewController
。这就是导致键盘出现的原因,它有一个
textView

SLComposeServiceViewController
替换为简单的
UIViewController
,键盘将不会出现。

© www.soinside.com 2019 - 2024. All rights reserved.