Пользовательская клавиатура UITextField и ответ на ориентацию устройства - PullRequest
0 голосов
/ 12 мая 2011

Я пытаюсь подключить пользовательскую клавиатуру к UITextField, и клавиатура будет реагировать на различные ориентации вида (альбомная, портретная и т. Д.).Короче говоря, проблема в том, что, хотя клавиатура отображается, при реагировании на ориентацию вида при повороте устройства размеры клавиатуры все перепутались, и я не совсем уверен, как установить рамки / границы клавиатуры.правильно.Надеюсь, кто-то здесь может мне помочь!

Вот мой дизайн:

Клавиатура построена из подкласса UIViewController (из Xib).Существует два вида: landscapeKeyboardView и PortraitKeyboardView.

Клавиатура присоединяется к UITextField через свойство «inputView».

Поворот вида с клавиатуры выполняется с помощью функции:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientationduration:(NSTimeInterval)duration
{
    if ((toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)) 
    {
        self.view = self.landscapeKeyboardView;
    }else if((toInterfaceOrientation == UIInterfaceOrientationPortrait) || (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))
    {
        self.view = self.portraitKeyboardView;
    }
}

Вращение происходит, но после поворота все размеры вида перепутались.Я также попытался вручную установить рамку или границы представления self.view или landscapeKeyboardView или PortraitKeyboardView, и ни один из них, казалось, не решил проблему.

Кто-нибудь знает, как обойти эту проблему?Или есть намного лучший шаблон дизайна для пользовательских клавиатур?

Спасибо!

1 Ответ

0 голосов
/ 26 июня 2011

Возможно, вам нужно перевести CGRect для вращения. У UIView есть несколько методов экземпляров для преобразования тикетов и точек. Он учитывает виды за пределами кадра другого вида (например, чтобы узнать, как далеко под UIP-перекрытием находится прямоугольник клавиатуры), а также поворот. c onvertRect: fromView: это только один пример, но все они начинаются с 'convert'.

...