Swift inputAccessoryView旋转后未连接到键盘



在旋转任何其他视图后,inputAccessoryView出现问题。例如:1) 转到视图A并旋转到横向2) 然后旋转回肖像
3)转到查看B

在视图B中,我有以下代码将inputAccessoryView分配给UITextField。但是,在我旋转应用程序中的任何视图后,附件视图总是附着在屏幕顶部,而不是键盘顶部。如果我不旋转任何视图,附件视图会按预期连接到键盘顶部。

这是用于创建和分配inputAccessoryView的代码,它是从viewDidLoad调用的

func addDoneButtonOnKeyboard(){
let doneToolbar = UIToolbar(frame: CGRect(x:0, y:0, width:320, height:50))
doneToolbar.barStyle = UIBarStyle.blackTranslucent
doneToolbar.isTranslucent = true
let flexSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace,
target: nil,
action: nil)
let doneButton = UIBarButtonItem(title: "Done",
style: UIBarButtonItemStyle.done,
target: self,
action: #selector(MyVC.doneButtonAction))
doneToolbar.setItems([flexSpace,doneButton], animated: false)
doneToolbar.sizeToFit()
doneToolbar.autoresizingMask=UIViewAutoresizing.flexibleWidth
self.myTextFild.inputAccessoryView = doneToolbar
}

我搜索了SO,但没有看到任何其他类似的问题/答案。。。。

在我的案例中,inputView是一个datePicker,我也遇到了同样的问题。对我来说,解决方案是:

textFieldDate.inputView?.autoresizingMask = [.flexibleHeight, .flexibleWidth]

不确定这是否也对你有帮助,因为你使用键盘作为inputView,但它可能会帮助其他人处理datePicker问题。

最新更新