簡體   English   中英

如何在此視圖控制器中顯示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()
    }
}

並且您應該看到輸入附件視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM