如何在此视图控制器中显示 inputAccessoryView
How can I show the inputAccessoryView in this view controller
我的控制器中有一个函数,我称之为
private func toggleLauncher() {
let launcher = CommentsLauncher()
launcher.showLauncher()
}
这实质上是在当前视图之上添加了一个具有半透明背景的视图。
然后我想在新添加的视图底部呈现自定义 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
添加到视图中,我不确定为什么。
您的 CommentsLauncher 永远不会成为您提供的代码中的第一响应者。当响应者成为第一响应者时显示 UIResponder 的 inputAccessoryView。
将您的 showLauncher 方法更改为如下内容:
func showLauncher() {
if let window = UIApplication.shared.keyWindow {
window.addSubview(view)
becomeFirstResponder()
}
}
您应该会看到输入附件视图。
我的控制器中有一个函数,我称之为
private func toggleLauncher() {
let launcher = CommentsLauncher()
launcher.showLauncher()
}
这实质上是在当前视图之上添加了一个具有半透明背景的视图。
然后我想在新添加的视图底部呈现自定义 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
添加到视图中,我不确定为什么。
您的 CommentsLauncher 永远不会成为您提供的代码中的第一响应者。当响应者成为第一响应者时显示 UIResponder 的 inputAccessoryView。
将您的 showLauncher 方法更改为如下内容:
func showLauncher() {
if let window = UIApplication.shared.keyWindow {
window.addSubview(view)
becomeFirstResponder()
}
}
您应该会看到输入附件视图。