gpt4 book ai didi

ios - 如何在此 View Controller 中显示 inputAccessoryView

转载 作者:行者123 更新时间:2023-11-29 05:58:13 25 4
gpt4 key购买 nike

我的 Controller 中有一个函数,我称之为

private func toggleLauncher() {
let launcher = CommentsLauncher()
launcher.showLauncher()
}

这本质上是在当前 View 之上添加一个具有半透明背景的 View 。

我想在新添加的 View 的底部渲染一个自定义的 inputAccessoryView

class CommentsLauncher: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = UIColor(white: 0, alpha: 0.5)
}

func showLauncher() {
if let window = UIApplication.shared.keyWindow {
window.addSubview(view)
}
}

override var inputAccessoryView: UIView? {
get {
let containerView = UIView()
containerView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 50)
containerView.backgroundColor = .purple
return containerView
}
}

override var canBecomeFirstResponder: Bool {
return true
}
}

虽然半透明背景可见,但我没有看到 inputAccessoryView 添加到 View 中,我不确定为什么。

最佳答案

您的 CommentsLauncher 永远不会成为您提供的代码中的第一响应者。当响应者成为第一响应者时,将显示 UIResponder 的 inputAccessoryView。

将 showLauncher 方法更改为如下所示:

func showLauncher() {
if let window = UIApplication.shared.keyWindow {
window.addSubview(view)
becomeFirstResponder()
}
}

您应该会看到输入附件 View 。

关于ios - 如何在此 View Controller 中显示 inputAccessoryView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54929565/

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