2012-03-23 2 views
0

画面の一番下にあるその移動可能なUItextfieldを作成する方法と、キーボードが表示されたら、それはiPhoneアプリケーションのkeyboaredの上に移動しますか?どのようにXcode 4.2でそれを行うには? whatsappとSkypeチャットのように。 テーブルに文字列を入力するのに使用します。その可動UItextfieldを作成するには?

+1

これを[リンク](https://github.com/brandonhamilton/inputtoolbar)のオープンソースプロジェクトでチェックしてください。 –

+0

申し訳ありませんが、私はそれがXCode 4.2 storyboaredingにはほとんど当てはまらないと思います – SultanSh

答えて

1

キーボード通知のリスナーとしてviewControllerを登録する必要があります。キーボードが現れると、ユーザ辞書で通知が発せられます。この辞書には、テキストフィールドフレームを新しい位置にアニメートするために使用する画面に対するキーボードの位置などの有用な情報が含まれます。ドキュメントをチェックアウト:

http://developer.apple.com/library/ios/#DOCUMENTATION/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html

具体的にあなたが望む通知は次のとおりです。

[[NSNotificationCenter defaultCenter] addObserver:self 
      selector:@selector(keyboardWasShown:) 
      name:UIKeyboardDidShowNotification object:nil]; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
      selector:@selector(keyboardWillBeHidden:) 
      name:UIKeyboardWillHideNotification object:nil]; 

あなたは、ほとんどの場合でのviewDidLoadでこれらを追加したいと思うでしょう。そして、あなたが完了したときに、通知(removeObserver :)の登録を忘れることを忘れないでください。viewDidUnloadのように。

0

Hubertが述べたように通知を使用することも、UITextFieldが最初の応答者であるかどうかを常に確認することもできます。最初の応答者の場合は、テキストフィールドが選択され、キーボードが影響するテキストフィールドが選択されます。

-(void)viewDidLoad { 

    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(checkTextField) userInfo:nil repeats:YES]; 

} 

-(void)checkTextField { 

    if (textField isFirstResponder) { 

     //the text field has been tapped and the keyboard will come up, so animate the text field moving up here 


    } else { 

     //the text field is not selected, so it should be in its original position 

    } 

} 
関連する問題