0

「。」の間のテキストを取得するためにこのコードを使用しています。たとえば、.1これが最初です。2これが2番目です。3これが4番目などです。最初のextをタップすると、ログに最初のテキストが表示されます。コードは

- (void)textViewDidBeginEditing:(UITextView *)textView
{

    [NSTimer scheduledTimerWithTimeInterval:0.001 target:maintextview   selector:@selector(resignFirstResponder) userInfo:nil repeats:NO];
}

- (void)textViewDidEndEditing:(UITextView *)textView
{
    NSRange selectedRange = [textView selectedRange];
    NSString *backString = [maintextview.text substringToIndex:selectedRange.location];
    NSRange backRange = [backString rangeOfString:@"." options:NSBackwardsSearch];
    NSRange backRangee = [backString rangeOfString:@"." options:NSBackwardsSearch];
    int  myRangeLenght = backRangee.location - backRange.location;
    NSRange myStringRange = NSMakeRange (backRange.location, myRangeLenght);
    NSString *forwardString  = [maintextview.text substringFromIndex:backRange.location];
    NSLog(@"%@",[[forwardString componentsSeparatedByString:@"."] objectAtIndex:1]);

}

forwadStringにはタップされたテキストが含まれています。この文字列を強調表示するか、コアグラフィックスなどを使用してこのテキストの上に色を描画したいだけです。前もって感謝します

4

2 に答える 2

2

私や他の多くの人ががっかりしたことに、Apple はiOS 3.2 までNSAttributedStringを実装しないことを選択しました。そのときでさえ、すべての標準 UI 要素はそれらをレンダリングすることができません!

幸いなことに、少数の、誇り高く、勇敢な人々が呼びかけに応え、 DTCoreTextが誕生しました。

実際の選択に関しては、iOS 3.2 では UITextView が UITextInput に準拠しているため、 を使用して設定できますselectedTextRange

于 2012-05-22T04:11:05.750 に答える
0

NSString文字列は単なる文字の表現であり、フォント、色、またはスタイルのプロパティを保持していません。代わりに、テキストを画面に描画する UI 要素に色を付ける必要があります。

forwardString がUILabelまたはにあるUITextView場合、プロパティを設定することでこれらの内部のテキストに色を付けることができtextColorます。たとえば、UILabel呼び出しがあった場合、次lblを使用して色を設定できます。

lbl.textColor = [UIColor redColor];
于 2012-05-22T04:21:24.337 に答える