2011-05-05 63 views
4

您好我正在使用表單進行數據輸入, 某些文本框位於表單的底部。 當我點擊文字字段進行書寫時,鍵盤出現並隱藏了字段。如果我讓textfield first responder它隱藏鍵盤,但通過這樣做我無法做到這一點。 我想知道當鍵盤出現時,整個窗體應該以我最後一個字段出現在鍵盤上的方式向上移動 在此先感謝鍵盤出現時出現幻燈片形式

+1

參見:[?使得視圖向上滑動以騰出空間給鍵盤(HTTP://計算器.COM /問題/ 5892205 /製作特輯中,視圖 - 滑到化妝餘地的鍵盤)。 – 2011-05-05 05:52:45

回答

6

在滾動條中添加所有視圖視圖和滾動視圖和文本框的設定委託然後使用這些代表和方法 -

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 

    [self scrollViewToCenterOfScreen:textField];  
    return YES; 

} 

-(BOOL) textFieldShouldReturn:(UITextField *)textField{ 

    if ([textField isEqual:txtField1]) 
    { 
     [txtField2 becomeFirstResponder]; 
    } 
    else if ([textField isEqual:txtField2]) 
    { 
     [txtField3 becomeFirstResponder]; 
    } 
    else 
    { 
     [textField resignFirstResponder];  
     [scrollView setContentOffset:CGPointMake(0, 0) animated:YES]; 
    } 

    return YES; 

} 

- (void)scrollViewToCenterOfScreen:(UIView *)theView { 
    CGFloat viewCenterY = theView.center.y; 
    CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame]; 

    CGFloat availableHeight = applicationFrame.size.height - 200;   // Remove area covered by keyboard 

    CGFloat y = viewCenterY - availableHeight/2.0; 
    if (y < 0) { 
     y = 0; 
    } 
    [scrollView setContentOffset:CGPointMake(0, y) animated:YES]; 

}