только показывать клавиатуру, когда определенное текстовое поле касается ipad? - PullRequest
0 голосов
/ 23 августа 2010

Мне нужно переместить вид вверх, когда отображается клавиатура, но только для 1 текстового поля внизу моего вида, я подумал, что это будет так же просто, как проверить isFirstResponder, но не такая удача - вот что я пытался:

if ([notes isFirstResponder]) {

    [UIView beginAnimations:@"moveupcontrols" context:nil];
    [UIView setAnimationDuration:.25];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    self.view.frame=CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y-kOrderFormKeyboardHeight, self.view.frame.size.width,  self.view.frame.size.height)  ;
    [UIView commitAnimations];

    keyboardIsShown = YES;
}

Я предполагаю, что уведомление срабатывает до того, как в моем текстовом поле будет установлен флаг FirstResponder. Мысли об обходном пути для этого?

Ответы [ 3 ]

2 голосов
/ 23 августа 2010

Почему бы не использовать UITextField -textFieldShouldBeginEditing: метод делегата? Он будет вызван до начала редактирования, и вы сможете выполнять анимацию там.

0 голосов
/ 23 августа 2010

Вот код, который вам нужно сделать:

- (void)viewDidLoad {
  textField1.tag = 1;
  textField2.tag = 2;

  textField1.delegate = self;
  textField2.delegate = self;
}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
  if (textField.tag == 1) {
    // then animation here
  }
}

Не забудьте выполнить протокол UITextFieldDelegate.

Подробнее о теге здесь .Подробнее о UITextFieldDelegate здесь

0 голосов
/ 23 августа 2010

Почему бы вам не установить тег для этого текстового поля и добавить тот же код в textFieldDidBeginEditing метод делегата?Вам нужно будет проверить значение тега вместо isFirstResponder.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...