【发布时间】:2026-01-20 09:00:01
【问题描述】:
这里有一个简单的例子。我在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()
}
}
【问题讨论】:
-
accessoryView.becomeFirstResponder()而不是self.becomeFirstResponder()? -
@Larme 不。 ;/
标签: ios swift viewdidload becomefirstresponder