私は 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」を検索して、行の位置を見つけることができます。どうすればそれを行うことができますか?
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 プロパティ ( layoutManager
、textContainer
、...)UITextView
を使用して、基になるレイアウト コンポーネントにアクセスし、文字列の一部の位置を照会できます。
古い iOS バージョンをサポートする必要がある場合characterRangeByExtendingPosition:inDirection:
は、UITextInput
プロトコルに記載されています。これを使用して、テキスト行の範囲を計算できます。
于 2013-09-22T12:46:46.493 に答える