2009-07-23 8 views
2

私はアプリで簡単なテキストチャット機能を実装しており、プログラムでUITextViewをスクロールする際に問題があります。 Interface Builderで作成したUITextViewを使用して、既存のテキストに新しい行とテキストを追加します。新しいテキストが追加されると、下にスクロールする必要があります。UITextViewをプログラムでスクロールする

私は自分のアプリにそれを追加する前に、そのコンセプトを決めるテストアプリケーションを構築しました。 UITextViewのテキストはUITextFieldのテキストで更新されますが、スクロールは発生しません。

- (IBAction)enteredText { 

CGPoint currentPosition = [textWindow contentOffset]; 
[textWindow setText:[NSString stringWithFormat:@"%@\n%@", textWindow.text, textInput.text]]; 
[textWindow setContentOffset:currentPosition animated:NO]; 
[textWindow scrollRangeToVisible:NSMakeRange([textWindow.text length], 0)]; 
[textInput setText:@""]; 
[textInput becomeFirstResponder]; 

}

私は、私はしばらく前に、私はコードが似て覚えてandfrom何開発された別のアプリケーションに非常によく似た機能を実装覚えています。唯一の違いは、以前のアプリケーションはiPhone OS 2用であったが、これは3.0用であることです。いくつかのフォーラムで、UITextViewがInterface Builderで作成されたときに3.0ベータにスクロールに関する問題があると読んでいました。私はcurrent release notesをチェックして、それを示す何も見ませんでした。

編集:テキストがUITextViewで更新されるため、IBアクションが呼び出されます。 「Cancellable Content Touches」がチェックされます。

編集:同じコードは2.2.1ではなく3.0

答えて

3

ユーザーがUITextViewをタップした後、スクロールが機能し始めたことがわかりました。私は一時的にFirstResponderとしてUITextViewを設定し、この特定のビューをロードした後ので、その後、FirstResponderなどのUITextField:それは私がiPhone OS 2.

に思い出したものよりも少ない滑らかに見えたとはいえ

[myChatRoomViewController.chatWindow becomeFirstResponder]; 
[myChatRoomViewController.input becomeFirstResponder]; 

その後、スクロールは、自動的に起こりました

0

に動作することを確認あなたはIBActionが呼び出さなっていますか?その場合は、Interface Builderで[Cancellable Content Touches]がオンになっていることを確認してください。これは、あなたがあなたの投稿で思い描いた問題を解決するはずです。

+0

テキストが更新されるため、アクションが呼び出されていることがわかります。そして、はい、Cancellable Content Touchesをチェックすると、3.0の問題が修正されています。私はそれらの詳細を元の投稿に含めるべきだった。 "取り消し可能なコンテンツタッチ"の詳細は何ですか –

+0

私はそれが何をしているのかは分かりませんが、あなたと同様の問題に直面していて、それを修正して確認していました。私はそれに起因する奇妙な副作用に気付かなかったが、私のケースは非常に簡単だった。 –

関連する問題