0

我正在使用此代码- (void)textViewDidEndEditing:(UITextView *)textView将文本与 aa textview 中的数字分开。我的代码是

//removing string in text

NSString *originalString = myStringTxt;
NSMutableString *strippedString = [NSMutableString 
                                   stringWithCapacity:originalString.length];

NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSCharacterSet *numbers = [NSCharacterSet 
                           characterSetWithCharactersInString:@"0123456789"];

while ([scanner isAtEnd] == NO) {
    NSString *buffer;
    if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {
        [strippedString appendString:buffer];

    } else {
        [scanner setScanLocation:([scanner scanLocation] + 1)];
    }
}

NSLog(@"%@", strippedString); // "123123123"

stippeString 包含来自文本组的数字宪章,我只想更改这些数字字符的字体颜色。我知道 UITextView 中不可能有多种颜色,但是有什么可能的黑客方法或可以改变颜色的东西上面的字符串?请帮我做这件事提前谢谢。

4

3 回答 3

0

一个对象中不能多种颜色。UITextView只有一种颜色是可能的。

但是您可以使用一些潜在的替代方案。我知道的一个是 JTextView,其源代码可在此处获得。您可能可以在 StackOverflow 上或通过 Google 查找其他替代方案。重要的是他们需要处理 " NSAttributedString" 对象(这是如何将字体样式分配给字符串中的范围)。

我怀疑这是 Apple 将在即将发布的 iOS 版本(例如 iOS 6)中修复的这些经常要求的问题之一,但在它宣布之前我们不会知道它。

于 2012-05-25T09:02:27.480 回答
0

您可以继承 UITextview 并将layerClass方法更改为 return CATextLayer。您现在可以将 NSAttributedString 用于CustomTextView.Layer.

  • 将 customTextView.layer 转换为 CATextLayer
  • 您可以在 NSAttributedString 中有多种颜色
于 2012-05-25T09:03:58.917 回答
0

核心文本可以帮助您为文本着色,或者您可以使用 uiwebview。

以这个链接为例

于 2012-05-25T09:06:44.333 回答