【问题标题】:Force Lucida Grande Font in a Yosemite Cocoa app在 Yosemite Cocoa 应用程序中强制使用 Lucida Grande 字体
【发布时间】:2025-12-04 07:50:01
【问题描述】:

我需要在我的应用中添加一些标签才能使用 Lucida Grande。当我在 Xcode 中指定此字体时,它会在 xib 中正确呈现,但是当您在 Yosemite 中启动应用程序时,它会切换回 Helvetica Neue。

我怎样才能让它正常工作?

【问题讨论】:

  • 您可以在 NIB 加载后在代码中执行此操作。将插座连接到文本字段并设置其font 属性。
  • 谢谢肯,这成功了
  • 似乎这样可以很好地减少向 Apple 提交错误报告。

标签: objective-c xcode cocoa nstextfield osx-yosemite


【解决方案1】:

按照 Ken 的建议,在 awakeFromNib() 方法中手动设置字体会得到正确的结果。

您可以设置 NSTextField 的字体属性

[self.myLabel setFont:[NSFont fontWithName:@"Lucida Grande" size:50.f]];

或使用 NSAttributedString

NSDictionary *attributes = @{ NSFontAttributeName : [NSFont fontWithName:@"Lucida Grande" size:50] };
NSAttributedString *text = [[NSAttributedString alloc] initWithString:@"Hello" attributes:attributes];
[self.myLabel setAttributedStringValue:text];

有趣的是,在很多情况下,我看到字体名称中带有空格的字体带有破折号,即@“Lucida-Grande”,这实际上破坏了输出,必须省略破折号。

【讨论】:

    最近更新 更多