2

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

アプリに追加する前に、コンセプトを明確にするためにテスト アプリケーションを作成しました。のテキストは のテキストで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];

}

少し前に開発した別のアプリケーションに非常によく似た機能を実装したことを覚えています。覚えていることから、コードは似ています。唯一の違いは、以前のアプリケーションは iPhone OS 2 用でしたが、これは 3.0 用です。UITextViewいくつかのフォーラムで、Interface Builder で作成された 3.0 ベータ版でスクロールに問題があったことを読みました。現在のリリース ノートを確認しましたが、それを示すものは何もありませんでした。

編集: UITextView でテキストが更新されるため、IB アクションが呼び出されます。そして、「キャンセル可能なコンテンツタッチ」にチェックが入っています。

編集:同じコードが 2.2.1 では機能するが 3.0 では機能しないことが確認されました

4

2 に答える 2

3

ユーザーが UITextView をタップした後、スクロールが機能し始めることがわかりました。したがって、この特定のビューをロードした後、UITextView を FirstResponder として一時的に設定し、次に UITextField を FirstResponder として設定しました。

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

スクロールは自動的に行われましたが、iPhone OS 2 で覚えていたものよりも滑らかではないように見えました.

于 2009-07-28T19:05:01.410 に答える
0

IBActionが呼び出されてもよろしいですか?その場合は、InterfaceBuilderで「キャンセル可能なコンテンツタッチ」がチェックされていることを確認してください。これにより、投稿で示唆した問題が解決するはずです。

于 2009-07-23T16:56:47.420 に答える