gpt4 book ai didi

ios - viewDidDisappear 后键盘不会消失

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:21:49 25 4
gpt4 key购买 nike

iOS 11.2、Xcode 9.2

我已经尝试了所有方法在旧 UIViewController AFTERUIViewControllerviewDidDisappear 上关闭键盘> 被插入 UINavigationController 堆栈。但没有运气。

如果我在 viewWillDisappear 上关闭它 - 它会被关闭,但带有 DURING 推送动画。这不是期望的行为。我希望仅当 Controller 不再可见时才关闭旧的 UIViewController 的键盘。

行为应该像在 Telegram 应用中一样:

在任何带有可见键盘的对话框中,按下对手的头像,您将被推送到对手的帐户信息。然后,如果您按下后退按钮,您将被重定向回对话框。但是键盘已经被关闭了。

感谢任何帮助!

附言这个问题可能看起来像一个重复的问题,但我未能使其与我找到的解决方案一起使用。

编辑 1.

我创建了一个小的 TEST PROJECT这表示未能实现所需的行为。

为了重现不良行为:

  • 启动应用。
  • 点击 UITextFieldUITextView 并等待键盘出现。
  • 点击“下一步”按钮并等待推送新 Controller 。
  • 点击“后退”按钮并等待弹出新 Controller 。

因此 - 初始 View Controller 将在推送/弹出操作后拥有事件键盘。我需要在按下/弹出操作后隐藏键盘。此外,键盘不应在初始 View Controller 变为不可见之前关闭,它应该在 viewDidDisappear 操作之后关闭。

最佳答案

有些情况下没有文本字段是第一响应者但键盘在屏幕上。在这些情况下,上述方法无法关闭键盘。

使用 textView 的属性:isEditable。这是经过测试的代码:

  override func viewWillAppear(_ animated: Bool) {
self.viewTextView.isEditable = false
super.viewWillAppear(animated)
}

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.viewTextView.isEditable = true
}

结果:

enter image description here

来自 @iWheelBuy 的评论:

Sometimes, text views will have inputAccessoryView. The way you do it will make the keyboard disappear, but the inputAccessoryView will remain... That is why you should also make inputAccessoryView = nil or inputAccessoryView = UIView() when setting isEditable = false

关于ios - viewDidDisappear 后键盘不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47847923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com