Ios 成为第一响应者,而不是从viewDidLoad显示

Ios 成为第一响应者,而不是从viewDidLoad显示,ios,swift,viewdidload,becomefirstresponder,Ios,Swift,Viewdidload,Becomefirstresponder,这里我有一个简单的例子。我正在调用viewDidLoad中的FirstResponder。但附件视图仅在点击屏幕后显示。为什么不从一开始就显示出来 class TestViewController: MainPageViewController { private let accessoryView = UIView() //TextInputView() // MessageInputAccessoryView() override var inputAccessoryVi

这里我有一个简单的例子。我正在调用
viewDidLoad
中的
FirstResponder
。但附件视图仅在点击屏幕后显示。为什么不从一开始就显示出来

class TestViewController: MainPageViewController {

    private let accessoryView = UIView() //TextInputView() // MessageInputAccessoryView()

    override var inputAccessoryView: UIView {
        return accessoryView
    }

    override var canBecomeFirstResponder: Bool { return true }



    override func viewDidLoad() {
        super.viewDidLoad()

        accessoryView.backgroundColor = .red
        accessoryView.frame = CGRect(x: 0, y: 0, width: 300, height: 50)
        self.becomeFirstResponder()

        // Do any additional setup after loading the view.

        let tap = UITapGestureRecognizer(target: self, action: #selector(tappo))
        self.view.isUserInteractionEnabled = true
        self.view.addGestureRecognizer(tap)

        tappo()
    }


    func tappo() {
        self.becomeFirstResponder()
    }


}

视图将出现
是放置
成为第一响应者的更好位置
。试试看。

所以我的第一响应者辞职了(因为我在使用
UIPageViewController
)。因此,我将此添加到我的
uiviewcontroller

override var canResignFirstResponder: Bool { return false }

就这样。干杯

accessoryView.becomeFirstResponder()
而不是
self.becomeFirstResponder()
?@Larme Nope/所以我在我当前的项目中尝试了这个方法,但没有效果。但是尝试创建了一个示例,它做到了。。我正在使用页面视图控制器,其中一个页面应该成为第一响应者,但一定有什么东西覆盖了它。。。哦,好吧。。