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/所以我在我当前的项目中尝试了这个方法,但没有效果。但是尝试创建了一个示例,它做到了。。我正在使用页面视图控制器,其中一个页面应该成为第一响应者,但一定有什么东西覆盖了它。。。哦,好吧。。