Swift inputAccessoryView не привязан к клавиатуре после поворота

У меня возникла проблема с inputAccessoryView после поворота ЛЮБОГО другого представления. Например: 1) перейти к виду А и повернуть в альбомную 2) затем повернуть обратно в книжную.
3) перейти к виду Б

в представлении 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
}

Я искал ТАК, но не видел других подобных вопросов/ответов....


person rmp    schedule 03.02.2017    source источник
comment
stackoverflow.com/questions/8140520/ проверьте, что это может дать вам подсказку, как наблюдать за изменением ориентации и настраивать рамку.   -  person    schedule 03.02.2017
comment
@Sneak Я пытался изменить размер кадра, как было предложено в нескольких сообщениях SO, но это не решило проблему.   -  person rmp    schedule 03.02.2017
comment
если вы правильно отрегулировали размер кадра и положение при вращении устройства, то я действительно не знаю, в чем может быть проблема, возможно, вам следует обновить вопрос, указав свои методы изменения размера и положения и то, как вы наблюдаете вращение устройства при этом.   -  person    schedule 03.02.2017
comment
@Sneak проблема не в вращении вида, содержащего вспомогательный вид, этот вид фиксируется в портретной ориентации. Проблемы возникают всякий раз, когда поворачивается другой вид, а затем я перехожу к представлению с дополнительным видом. Таким образом, вращение даже не разрешено для рассматриваемого вида.   -  person rmp    schedule 03.02.2017
comment
Ах, я вижу, я немного поискал для вас, вот что я нашел, возможно, поможет вам stackoverflow.com/questions/32550036/ .. однако это все, что я могу придумать, ГЛ   -  person    schedule 03.02.2017
comment
@Sneak, спасибо за усилия, я тоже это видел, но решения нет....   -  person rmp    schedule 03.02.2017


Ответы (1)


В моем случае inputView был datePicker, и у меня была такая же проблема. Решение для меня было:

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

Не уверен, что это поможет и вам, потому что вы используете клавиатуру в качестве inputView, но, возможно, это помогает другим с проблемами datePicker.

person tuvok    schedule 26.09.2017