Cocoa 更改NSTextView的属性

Cocoa 更改NSTextView的属性,cocoa,Cocoa,我的窗口中有一个NSTextView对象。 我有两个问题需要解决 1) 我的NSTextView内容在我设置的不同NSString之间更改。我想让文本变大一点,但当应用程序初始化时,那里将没有内容。我如何设置它,使传递给它的所有字符串都可以使其变大。谢谢 2) 我不希望用户可以编辑我的内容,但当我在inspector中取消选中“editable”时,我将无法在代码中更改NSTextView的内容。我如何使内容可以更改,但用户仍无法屏蔽内容?谢谢 使用NSAttributedString的实例来设

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

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


2) 我不希望用户可以编辑我的内容,但当我在inspector中取消选中“editable”时,我将无法在代码中更改NSTextView的内容。我如何使内容可以更改,但用户仍无法屏蔽内容?谢谢

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

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

编辑

下面是使用属性字符串的示例。关于这个问题的讨论非常详尽。如果不使用ARC,请确保在使用完后释放
attrString
(或自动释放)


我知道如何在用户不更改的情况下更改内容,但您能教我如何清除NSTextView的所有内容吗?当然:
[yourTextView setString:@”“谢谢。我不太明白如何更改字符串的字体大小。你能举个例子吗?@user1927992如果我的回答(以及随后的对话)对你有帮助,别忘了接受它。谢谢
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];