Cocoa更改NSTextView的属性

时间:2013-02-14 15:52:19

标签: cocoa

我的窗口中有一个NSTextView对象。 我有两个问题需要解决。

1)我的NSTextView内容在我设置的不同NSStrings之间发生变化。我想让文本更大一些,但是当应用程序初始化时,那里将没有内容。如何设置它传递给它的所有字符串可以使它们的大小更大。感谢

2)我不希望用户可以编辑我的内容,但是当我在检查器中取消选中“可编辑”时,我将无法在代码中自行更改NSTextView的内容。如何制作以便内容可能会发生变化但内容仍然无法被用户使用?谢谢!

1 个答案:

答案 0 :(得分:1)

使用NSAttributedString的实例设置文字视图的内容。您可以设置属性字符串,以便它们使用特定的字体大小。执行此操作时,请在app控制器的-awakeFromNib方法中执行此操作,以解决应用程序启动时没有内容的问题。

即使重置“可编辑”标记,您仍然可以更改文本视图的内容。这只会禁止您的用户更改内容。您是否实际尝试以编程方式更改内容?

修改

以下是使用属性字符串的示例。关于这个主题的Apple's documentation很好地涵盖了它。如果您不使用ARC,请务必在完成后释放attrString(或自动发布)。

NSFont *font = [NSFont fontWithName:@"Helvetica" size:24.0];
NSDictionary *attributes = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName];
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"this is Helvetica at 24 points" attributes:attributes];

[[[self textView] textStorage] appendAttributedString:attrString];