【问题标题】:Make specified text in NSTextView Bold在 NSTextView 中将指定的文本设为粗体
【发布时间】:2014-05-22 22:55:01
【问题描述】:

我正在使用一些代码来更改 NSTextView 中的文本

NSString *string = @"This is a title\n\nThis is some info";
[content setString:string];

我想让文本“这是一个标题”在 NSTextView 和其他普通文本中显示时成为唯一的粗体文本。有没有办法做到这一点?也许就像 StackOverflow 编辑器的工作原理一样? __bold text here__

提前致谢!

【问题讨论】:

  • 你想使用 NSAttributedString。

标签: objective-c formatting nstextview


【解决方案1】:

我不确定您是否可以只应用加粗,因为这通常是另一组字形的一部分。但这是如何工作的......

NSString* textUnattributed = @"This is a title\n\nThis is some info";
NSMutableAttributedString* textAttributed = [[NSMutableAttributedString alloc] initWithString:textUnattributed];
[textAttributed addAttribute:NSFontAttributeName
                       value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0]
                       range:[textUnattributed rangeOfString:@"This is a title"]];
content.attributedText = textAttributed;

【讨论】:

  • 我收到错误提示Use of undeclared identifier 'prompt'
  • @SteppingHat,哎呀,我从我的一个项目中获取了一些代码,让我修复一下。
  • 一切都好。还有一个问题。 content.attributedText 不是我可以应用于 NSTextView 的东西,但我可以使用 content.attributedString 但是我收到错误 No setter method 'setAttributedString:' for assignment to property
  • 另外...对于range:[textUnattributed rangeOfString:...],我也收到错误消息No visible @interface for 'NSMutableArray' declares the selector 'rangeOfString'。在我的例子中,我将textUnattributed 替换为一个名为result 的数组。从本质上讲,一点一点地获取数组,然后在 for 循环中将其变成一个巨大的字符串。它是一个多维数组和第二个数组索引为 0 的数组的任何部分,我想加粗。所以在 for 循环中它看起来像result[i][0]。对不起,复杂哈哈。但本质上,我怎样才能使这个工作与数组一起工作?
  • 可能是时候提出另一个 SO 问题了。我也很乐意为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 2013-12-16
  • 1970-01-01
  • 2014-07-13
  • 2021-01-14
  • 2014-09-21
  • 2021-12-31
  • 2023-01-12
  • 2012-09-15
相关资源
最近更新 更多