2011-08-25 55 views
0

我想通過UITextFields在鍵盤啓動時導航。我有一個帶有內置文本框的UIScrollView的xib設置。當UITextField被設置爲第一響應者時,我將contentOffset.y更改。前兩個文本框會正常響應,但在此之後,滾動視圖將射過選定的文本框,並且在獲得的列表的下方越來越差。我已經設置了NSLog語句和斷點,這些斷點告訴我,當我第一次選擇文本字段時,使用了正確的y值,但隨後幾次滾動視圖的scrollViewDidScroll方法直接調用,運行經過文本字段。UIScrollView自動滾動後,我設置contentOffset

-(void)textFieldDidBeginEditing:(UITextField *)textField{ 
    textField.inputAccessoryView = accessoryBar; 
    int offset = 30; 
    [scrollView setContentOffset:CGPointMake(0, textField.frame.origin.y -offset) ]; 
} 

-(void)textFieldDidEndEditing:(UITextField *)textField{ 
    [scrollView setContentOffset:CGPointMake(0, 0)]; 
} 

-(BOOL) textFieldShouldReturn:(UITextField*) textField { 
    [textField resignFirstResponder]; 
    return YES; 
} 

我上的Xcode 4.1獅子運行iOS 4.3

+0

你在做什麼scrollViewDidScroll會改變這個?或者你是否在其他地方設置了內容偏移? – MishieMoo

+0

我沒有使用scrollViewDidScroll來打印使用NSLog的偏移調用。「NSLog(@」scrollview:offsetY:%f height:%f「,scrollView.contentOffset.y,scrollView.contentSize.height);」 – user912649

+0

你的抵消總是30?像Mundi說的,絕對會登錄textField框架。 – MishieMoo

回答

0

也許你accessoryBar是搞亂的東西了? inputAccessoryView屬性通常是隻讀的,所以我假定你已經子類UITextField。在沒有accessoryBar的情況下嘗試您的代碼。

+0

我註釋了accessoryBar的作業,我得到了相同的結果 – user912649

+0

你還NSLog你的textField幀?這聽起來像那些可能是在不同的座標...一切都如預期的一樣? – Mundi

+0

是的,他們如預期 – user912649

相關問題