2012-05-05 20 views
6

私は大きなフルスクリーンUITextViewを持っています。私がそれをタップすると、キーボードがポップアップし、テキストを編集することができます。しかし、I型が長くなればなるほど、最終的にテキストがキーボードの後ろのビューの下を流れます。私はもはや私が何を入力しているか見ることができません。UITextView、編集中にスクロールしますか?

これはどのように処理しますか?カーソルの位置を追跡し、手動でビューをスクロールする必要がありますか?

答えて

5

(タイピングによるかと言う)テキスト範囲に応じてスクロールダウンTextViewのために次のコードを使用する必要がありますあなたのUITextViewをキーボードの表示/非表示としてサイズを設定します。したがって、キーボードはあなたのテキストビューを超えません。ここにサンプルコードがあります。

- (void)viewDidLoad 
{ 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWillShow:) 
               name:UIKeyboardWillShowNotification 
               object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWillHide:) 
               name:UIKeyboardWillHideNotification 
               object:nil]; 
} 

- (void)keyboardWillShow:(NSNotification *)notification 
{ 
    [UIView beginAnimations:nil context:nil]; 
    CGRect endRect = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; 
    CGRect newRect = YOUT_TEXT_VIEW.frame; 
    //Down size your text view 
    newRect.size.height -= endRect.size.height; 
    YOUT_TEXT_VIEW.frame = newRect; 
    [UIView commitAnimations]; 
} 

- (void)keyboardWillHide:(NSNotification *)notification 
{ 
    ... // Resize your textview when keyboard is going to hide 
} 
+0

Thanx Dear Thant Thet。 – jamil

7

は、あなたは、私はあなたが持っていると思い

NSRange range = NSMakeRange(textView.text.length - 1, 1); 
[textView scrollRangeToVisible:range]; 

希望、これはあなたを助ける...

+0

応答のためのThanx。しかし、私は何をしたいのですか?下のリンクはうまく動作します。 – jamil

+3

https://developer.apple.com/library/ios/#samplecode/KeyboardAccessory/Listings/Classes_ViewController_m.html – jamil

+3

@ user1328096後輩については、適切な答えとして質問に答えを書くことができますか? (また、いくつかの回答を受け入れることを忘れないでください) –

2

TPKeyboardAvoidingは、キーボードを避けるためにすべてのスクロールを処理する優れたツールです。 /非常に/便利で強くお勧めします。参照してください:https://github.com/michaeltyson/TPKeyboardAvoiding

+0

うわー、どのような宝石TPKeyboardAvoidingです! – thomers

関連する問題