【问题标题】:Is it possible to highlight a NSString or draw some color to a string是否可以突出显示 NSString 或为字符串绘制一些颜色
【发布时间】:2013-05-14 19:06:13
【问题描述】:

我有这段代码来获取“。”之间的文本。例如,我有很多文本,例如 .1 这是第一个。2 这是第二个。3 这是第四个等等。当我点击第一个分机时,它会在日志中显示第一个文本。代码是

- (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 包含点击的文本,我只想突出显示该字符串或使用核心图形或类似的东西在该文本上方绘制颜色。可能吗? 提前致谢

【问题讨论】:

    标签: iphone ios nsstring


    【解决方案1】:

    令我和其他许多人失望的是,Apple 选择在 iOS 3.2 之前不实现 NSAttributedString,即便如此,所有标准 UI 元素都无法呈现它们!

    幸运的是,少数、骄傲和勇敢的人响应了号召,DTCoreText 诞生了。

    至于实际选择,因为 UITextView 从 iOS 3.2 开始符合 UITextInput,所以您可以使用和设置selectedTextRange

    【讨论】:

    • ,我们如何选择forwardstring,就像默认的复制粘贴选择一样?
    • @CodaFi 我对我的项目的可选 NSAttributedStrings 非常感兴趣,因此我可以停止使用令人讨厌的慢速 UIWebView ...我找不到从 UITextView 继承的项目的一部分,但是,那么 DTCoreText 是否支持选择项和 UIMenu 项?
    【解决方案2】:

    不可能为NSString“着色”,字符串只是字符的表示,它不包含字体、颜色或样式属性。相反,您需要为将文本绘制到屏幕上的 UI 元素着色。

    如果 forwardString 在 UILabelUITextView 中,您可以通过设置 textColor 属性为其中的文本着色。例如,如果您有一个名为 lblUILabel,您可以使用以下命令设置颜色:

    lbl.textColor = [UIColor redColor];
    

    【讨论】:

    • 是否可以在 textview.text 是 forwrdstring 然后 text.textcolor = [uicolor yellow color]; 中设置条件?
    • 可以,你需要设置textView的delegate,并重写一个方法(比如textDidChange)。这样,每当文本视图中的文本发生更改时,都会触发此方法。把你设置颜色的逻辑放在那里
    猜你喜欢
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2021-04-03
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多