клавиатура не исчезает из вида-iphone - PullRequest
0 голосов
/ 16 января 2012

У меня есть одно текстовое поле и два textViews ... во время записи чего-либо в 1 conrol клавиатура всплывает ... но когда я хочу переключиться на другой элемент управления, моя клавиатура не позволяет мне писать, поскольку она покрывает всепосмотреть ... как я могу решить мою проблему?

Ответы [ 4 ]

1 голос
/ 16 января 2012

Вы должны переместить ваше представление вверх, чтобы клавиатура не закрывала текстовое поле / текстовое представление. как то так ...

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{   
    if (textField == *textFieldName*) 
    {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDelegate:self];
        [UIView setAnimationDuration:0.5];
        [UIView setAnimationBeginsFromCurrentState:YES];
        self.view.frame = CGRectMake(self.view.frame.origin.x, (self.view.frame.origin.y - 65.0), self.view.frame.size.width, self.view.frame.size.height);
        [UIView commitAnimations];

    }
}

- (void)textFieldDidEndEditing:(UITextField *)textField 
{   
    if (textField == *textFieldName*) 
    {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDelegate:self];
        [UIView setAnimationDuration:0.5];
        [UIView setAnimationBeginsFromCurrentState:YES];
        self.view.frame = CGRectMake(self.view.frame.origin.x, (self.view.frame.origin.y + 65.0), self.view.frame.size.width, self.view.frame.size.height);
        [UIView commitAnimations];
    } 
}

и для textView использовать:

- (void)textViewDidBeginEditing:(UITextView *)textView

и

- (void)textViewDidEndEditing:(UITextView *)textView
0 голосов
/ 16 января 2012

Вы можете сдвинуть весь вид вверх или просто сдвинуть элементы управления (текстовое поле и текстовый вид) вверх ... или сделать прокрутку своего вида таким образом, чтобы пользователь мог прокручивать ее вниз, пока клавиатура видна.

0 голосов
/ 16 января 2012
- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
    const int movementDistance = 150; // tweak as needed
    const float movementDuration = 0.3f; // tweak as needed

    int movement = (up ? -movementDistance : movementDistance);

    [UIView beginAnimations: @"anim" context: nil];
    [UIView setAnimationBeginsFromCurrentState: YES];
    [UIView setAnimationDuration: movementDuration];
    self.view.frame = CGRectOffset(self.view.frame, 0, movement);
    [UIView commitAnimations];
}

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView{

        [self animateTextField: textField up: YES];
}
- (void)textViewDidEndEditing:(UITextView *)textView{
            [self animateTextField: textField up: NO];

}
0 голосов
/ 16 января 2012

Использовать функции делегатов, предоставляемые для uitextview и uitextfiled ....

...