2017-02-03 4 views
0

У меня возникает проблема с inputAccessoryView после того, как ЛЮБОЙ другой вид повернут. Например: 1) перейдите к обзору A и поверните на пейзаж 2) затем поверните обратно на портрет.
3) перейти на вид ВSwift inputAccessoryView не подключен к клавиатуре после вращения

в виде BI имеет следующий код для назначения в 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, но не видел любые другие вопросы/ответы аналогичные ....

+0

http://stackoverflow.com/questions/8140520/how-should-i-get-my-inputaccessoryview-to-resize-when-rotating-device проверить это может дать вам подсказку, как наблюдать за изменением ориентации и регулировать рама. –

+0

@Sneak Я попытался изменить размер рамки, как было предложено несколько сообщений SO, но это не решило проблему. – rmp

+0

, если вы правильно отрегулировали размер кадра и положение на поворотах устройства, тогда я не знаю, на самом деле проблема, возможно, вам следует обновить вопрос своими методами для изменения размера и повторного размещения и того, как вы наблюдаете за поворотом устройства при выполнении этого , –

ответ

1

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

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

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

Смежные вопросы