0

私は NSString に入れたプレーンな NSString を持っていUITextViewます。新しい行が始まるときに位置を検索する必要があります。@"This is a big test string which i want to put into UITextView"textview が文字列を からに@"This is a\n big test \nstring which\n i want to\n put into\n UITextView"自動的に変換すればできると思い ます。次に、「\n」を検索して、行の位置を見つけることができます。どうすればそれを行うことができますか?

4

2 に答える 2

0

いつキーボードを非表示にするかを知るために、アプリで「\n」を数えます。\ns を数える代わりに、他の文字を数えて "\n" の場所を取得できます。行は「\n」の数をカウントするだけで、ビューがロードされたときにゼロにリセットされます。

// dismiss keyboard from text view with return key
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range  replacementText:(NSString *)text
{
    if([text isEqualToString:@"\n"]) {

        rows++;

        if ( rows >= 2 ){

            // resign text view
            [self.quotationTextView resignFirstResponder];

            return NO;
        }else{
            return YES;
        }
    }else{
        rows = 0;
    }


    return YES;
}
于 2013-09-22T14:11:58.943 に答える
0

それは UITextView の仕組みではありません。コンテナー内にテキストを配置するプロセスは、単に改行を見つけるよりも複雑であり、NL 文字を含む新しい文字列を生成しません。

iOS 7 では、TextKit プロパティ ( layoutManagertextContainer、...)UITextViewを使用して、基になるレイアウト コンポーネントにアクセスし、文字列の一部の位置を照会できます。

古い iOS バージョンをサポートする必要がある場合characterRangeByExtendingPosition:inDirection:は、UITextInputプロトコルに記載されています。これを使用して、テキスト行の範囲を計算できます。

于 2013-09-22T12:46:46.493 に答える