【问题标题】:Mac OSX: How to stroke text in NSTextField?Mac OSX:如何在 NSTextField 中描边文本?
【发布时间】:2016-09-25 00:35:58
【问题描述】:

我使用 Objective C 为 OSX 编写了一个应用程序。我有一个 NSTextField 用于显示不可编辑的文本。我正在尝试使字体周围有一个细笔划/轮廓,但很难做到。

我尝试使用 NSTextView 而不是 NSTextField 并实现了一个 NSAttributedString,但是根本没有概述文本:

            NSAttributedString *string = [[NSAttributedString alloc] initWithString:@"Test String" attributes:@{ NSStrokeColorAttributeName : [CIColor blackColor], NSForegroundColorAttributeName : [CIColor blackColor], NSStrokeWidthAttributeName : @-1.0 }];

            [quoteText_Label setEditable:YES];
            [quoteText_Label insertText: string];
            [quoteText_Label setEditable:NO];

看看 SO 的另一个问题,它们要么针对 iOS、Swift,要么对于我正在尝试的简单实现来说太过分了:只是白色字体周围的简单黑色笔划。

谢谢

【问题讨论】:

    标签: objective-c macos


    【解决方案1】:

    在 XIB 中打开富文本并设置文本字段的attributedStringValue 属性。你不必这样做setEditable

    阅读NSStrokeWidthAttributeName的文档:

    NSNumber 包含浮点值,以字体点大小的百分比表示

    默认0,无描边;积极,独自中风;负数、描边和填充(轮廓文本的典型值为 3.0)

    黑色文本周围的细黑色轮廓几乎不可见。

    【讨论】:

      【解决方案2】:

      颜色属性的值应该是 NSColor 对象。我认为,在这里使用 CIColor 是错误的。

      【讨论】:

      • 这个答案应该是评论。
      猜你喜欢
      • 1970-01-01
      • 2011-02-19
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 2012-01-27
      • 1970-01-01
      相关资源
      最近更新 更多