ここでは簡単な例があります。私はFirstResponder
をviewDidLoad
に呼んでいます。しかし、付属品の表示は画面をタップした後にのみ表示されます。なぜそれは最初から表示されていないのですか?becomeFirstResponderがviewDidLoadから表示されない
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()
}
}
'self.becomeFirstResponder()'ではなく 'accessoryView.becomeFirstResponder()'ですか? – Larme
@Larme Nope。 ;/ – HelloimDarius