4

我认为这将是直截了当的,但看起来我错了。基本上,我要做的就是阻止字体更改为 Apple 默认字体:Helvetica Regular 12pt。

我创建了一个 NSDocument 的子类,在我的实现文件中我有以下方法:

- (void)windowControllerDidLoadNib:(NSWindowController*)aController
{
    [super windowControllerDidLoadNib:aController];

    if(attrString)
    {
        [[textView textStorage] setAttributedString:attrString];
        [[textView textStorage] setFont:[NSFont fontWithName:@"Menlo Bold" size:24]];
    }

当我打开文件时,此方法可以正常工作,但是如果我删除所有文本然后再次键入,字体将重置为... Helvetica Regular 12pt ... 我只想保持我指定的字体和大小它在程序的整个生命周期中。

4

1 回答 1

1

您需要设置文本视图的键入属性以包含键 NSFontAttributeName 的字体。

但是,我会更进一步。如果你知道你从不需要模型中的某种字体(NSTextStorage - NSTextView 的后备存储),只需子类化 NSTextStorage 并覆盖属性设置器和获取器。NSTextView 允许用户访问字体菜单,并且复制/粘贴仍将允许某些字体进入。真正保证它永远不会进入您的文本视图的唯一方法是永远不允许它进入模型。

于 2012-09-17T16:44:40.033 回答