设置 NSTextView 的字体

发布于 2024-09-05 13:45:40 字数 424 浏览 5 评论 0原文

我正在子类化 NSTextView 以设置它的默认字体:

PTNfoEditField.h

@interface PTNfoEditField : NSTextView {

}

@end

PTNfoEditField.m

@implementation PTNfoEditField

-(id)init {
    if(self = [super init]) {
        [[self textStorage] setFont:[NSFont fontWithName:@"Courier" size:10]];
    }

    return self;
}

@end

但是,这不起作用,我不知道如何以不同的方式做到这一点。谁能帮助我吗?谢谢。

I am subclassing NSTextView to set it's default font:

PTNfoEditField.h

@interface PTNfoEditField : NSTextView {

}

@end

PTNfoEditField.m

@implementation PTNfoEditField

-(id)init {
    if(self = [super init]) {
        [[self textStorage] setFont:[NSFont fontWithName:@"Courier" size:10]];
    }

    return self;
}

@end

However, this does not work and I don't know how to do it in a different way. Can anyone help me? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独守阴晴ぅ圆缺 2024-09-12 13:45:40

视图的初始值设定项不是 init,而是 initWithFrame:。此外,如果您的视图位于笔尖中,您还必须重写 initWithCoder:。不要忘记确保您的视图实际上是 PTNfoEditField,而不是常规的 NSTextView。

另外,您应该使用[NSFont userFixedPitchFontOfSize:0.0]来设置字体。您不应对字体名称(用户可能更喜欢更好的等宽字体)和字体大小(用户可能会发现 10 磅难以阅读或将抗锯齿阈值设置在其上方)进行硬编码。

The initializer for views is not init, it's initWithFrame:. Furthermore, if your view is in a nib, you must also override initWithCoder:. Don't forget to make sure your view is actually a PTNfoEditField, not a regular NSTextView.

Also, you should use [NSFont userFixedPitchFontOfSize:0.0] to set the font. You should hard-code neither the font name (the user may prefer a better monospaced font) nor the font size (the user may find 10-pt hard to read or have their anti-aliasing threshold set above it).

药祭#氼 2024-09-12 13:45:40

也许也可以尝试 setTypingAttributes:

Maybe try setTypingAttributes: too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文