2012-03-20 21 views
-2

キーボードの後ろにテキストフィールドが表示されないように、このチュートリアルthis tutorialに従っています。問題は2つのビューを使用するときに発生します。 View1は、次のボタンを押してView2を呼び出しています。両方のビューにはテキストフィールドと次のボタンがあります。しかし、問題は、私は1つのUITextFieldと私はUITextFieldの上でクリックしたボタン一つ キーボードの裏に隠れるUITextField

  • を持っているのiOSシミュレータVIEW1のロードを開始した後だけにして、

    ケース1

    1. を意味し、このコードは1つのビューのために働いていますキーボードがポップアップし、表示がスクロール可能なので、テキストフィールドがキーボードの後ろに隠れていると、それは上に移動します。
    2. 次に、[次へ]ボタンを押して、view2に移動します。
    3. 私はUITextFieldをクリックするとキーボードがポップアップしますが、テキストフィールドはキーボードの後ろにあり、スクロールできません。

    ケース2

    1. 私は1つのUITextFieldと一つのボタンを持つiOSシミュレータのVIEW1のロードを開始した後。
    2. 今回は、UITextFieldをクリックせずに[次へ]ボタンを押しただけです。だから今私はview2に移動
    3. 私はUITextFieldを押して、キーボードがポップアップし、私はキーボードの上にテキストフィールドをスクロールすることができました。

    なぜこれが起こっているのかわかりませんが、両方のビューで同じように動作するはずです。リンクに与えられたとして、私は私はあなたがキーボードポップアップの対象ばかりTextFieldの問題を抱えていると仮定あなたの質問を読んで、必要なファイルMIBackgroundTapDelegate.h、

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

    私を混乱させる... !!より良い方法で説明する.. !! – Sarah

    +0

    より良い方法を説明し、あなたの意見のスキームの図を配置 – Gargo

    答えて

    1

    を作成しました。 をUIScrollViewに入れ、このデリゲートメソッドを呼び出す必要があります。 Next/Returnボタンを押すとカーソルが2番目の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

    +0

    ありがとう.. :-) –

    関連する問題