2012-03-20 97 views
-2

我按照本教程this tutorial避免隱藏在鍵盤後面的文本字段。問題在於我使用兩個視圖。 View1通過按下一個按鈕來調用View2。兩個視圖都有文本框和下一個按鈕。但問題是這樣的代碼工作的一個視圖只意味着隱藏在鍵盤後面的UITextField

案例1

  1. 後,我開始它有一個的UITextField和一個按鈕
  2. 我上的UITextField點擊iPhone模擬器廠景負載,然後鍵盤彈出並且視圖是可擦的,所以如果文本字段隱藏在鍵盤後面,它會向上移動。
  3. 然後我按下一個按鈕,所以它需要我view2。
  4. 現在在view2上,我單擊UITextField,彈出鍵盤,但文本字段位於鍵盤後面,無法將其向上滾動。

案例2

  1. 後,我開始它有一個的UITextField和一個按鈕iPhone模擬器廠景負荷。
  2. 這次我只按了Next按鈕而沒有點擊UITextField。所以現在我移動到view2
  3. 在視圖2現在我按下UITextField,彈出鍵盤,我可以滾動文本框的鍵盤。

我不知道爲什麼發生這種情況,它應該適用於兩個視圖。作爲鏈接給我創造了所需的文件MIBackgroundTapDelegate.h,

MIScrollView.h 
MIScrollView.m 
ScrollableViewController.h 
ScrollableViewController.m 
+1

讓我困惑...... !!更好地解釋.. !! – Sarah 2012-03-20 08:31:32

+0

解釋一下更好的方法和地方你的意見方案圖片 – Gargo 2012-03-20 08:46:06

回答

1

讀你的問題,我認爲你有文本框的問題下鍵盤彈出得到覆蓋。您應該將這些UITextFilds放在UIScrollView中,並調用此委託方法。在Next/Return按鈕上按下它會被調用,它將把你的光標移到第二個UITextField

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    NSInteger nextTag = textField.tag + 1; 
    UIResponder* nextResponder = [textField.superview viewWithTag:nextTag]; 

    if (nextResponder) 
{ 
    // Found next responder, so set it. 
    [nextResponder becomeFirstResponder]; 
    txtPswd.secureTextEntry=YES; 
    sv.contentOffset=CGPointMake(0, 150); //it will push your scrollview 150 pixels upwards. 
} 
else 
{ 
    // Not found, so remove keyboard. 
    [textField resignFirstResponder]; 
    sv.contentOffset=CGPointMake(0, 0); 
} 
    return NO; 
} 
+0

好的答案令人困惑的問題 – ingenspor 2012-08-28 01:23:20

+0

謝謝你.. :-) – 2012-08-28 10:34:53