4

これは簡単だと思いましたが、間違っていたようです。基本的に、私がやろうとしているのは、フォントがAppleのデフォルトであるHelveticaRegular12ptに変更されないようにすることだけです。

NSDocumentのサブクラスを作成し、実装ファイルに次のメソッドがあります。

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

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

この方法はファイルを開いたときに問題なく機能しますが、すべてのテキストを削除してからもう一度入力すると、フォントは次のようにリセットされます... Helvetica Regular12pt...指定したフォントとサイズを維持するだけですプログラムの全期間にわたってそれを。

4

1 に答える 1

1

キー NSFontAttributeName のフォントを含むように、テキスト ビューの入力属性を設定する必要があります。

しかし、私はさらに一歩進みます。モデルに特定のフォントが絶対に必要ないことがわかっている場合 (NSTextStorage -- NSTextView のバッキング ストア)、単純に NSTextStorage をサブクラス化し、属性のセッターとゲッターをオーバーライドします。NSTextView はユーザーにフォント メニューへのアクセスを提供し、コピー/貼り付けは引き続き特定のフォントを許可します。それがテキスト ビューに入らないことを真に保証する唯一の方法は、それをモデルに決して許可しないことです。

于 2012-09-17T16:44:40.033 に答える