问题标签 [nsfontmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1254 浏览

objective-c - 如何在 macOS 中以编程方式在 mac 中安装自定义字体

我有一个 mac 应用程序,其中我的自定义字体不在我的 mac 应用程序文件夹的自定义字体书中。

因此,当应用程序启动时,我使用以下代码检查了是否在 mac 中安装了字体。

现在,如果尚未安装字体,我该如何以编程方式安装它?

0 投票
1 回答
974 浏览

swift - NSTextView、NSFontManager 和 changeAttributes()

所以我写了这个应用程序来熟悉 Swift 和 OSX 编程。这是一个笔记应用程序。注释窗口由一个 NSTextView 和一个可以打开 NSFontPanel 的按钮组成。

更改字体效果很好。选择尺码?没问题。想要更改字体的属性,如颜色、下划线等?我完全不确定如何让它发挥作用。

其他来源(例如这里这里)似乎表明 NSTextView 应该是 NSFontManager 的目标,并且 NSTextView 有它自己的 changeAttributes() 实现。然而,使 NSTextView 成为目标,什么都不做。当我在 NSTextView 中选择文本并打开字体面板时,我在 fontPanel 中所做的第一个选择会导致取消选择文本。

使我的视图控制器成为 NSFontManager 的目标并为 changeAttributes 实现一个存根会产生一个 NSFontEffectsBox 类型的对象,我找不到任何好的文档。

问题是......我应该用 NSFontEffectsBox 做什么?如果在 fontPanel 我选择带有双下划线的蓝色文本,我可以在调试器中看到这些属性,但我无法以编程方式访问它们。

以下是相关代码:

更改字体的代码。这工作得很好。

changeAttributes 的存根代码:

所以..我的目标有两个:

  1. 了解这里发生了什么
  2. 我在 fontPanel 中所做的任何更改都会反映在 NSTextView 选定的文本中。

谢谢你。

0 投票
1 回答
173 浏览

cocoa - NSTextField 吃 NSFontPanel..?

NSFontPanel当我的应用程序中的一个焦点集中时,我在接收任何消息时遇到了一个奇怪的问题NSTextField

即使是一个子类NSTextField也没有从字体面板接收任何内容.. 似乎面板发送的所有内容(例如,在更改字体、颜色等时)都只是在 AppKit 的某个地方被吃掉了。

当文本字段没有聚焦时,一切正常,即我得到了通常的changeFont:和相关的消息。

此外,与NSTextView似乎没有任何属性可以在NSTextField..

非常感谢任何提示!

0 投票
1 回答
394 浏览

cocoa - NSFontManager addFontTrait如何改变UI元素上的实际字体

[[NSFontManager sharedFontManager] addFontTrait:(nullable id)sender]我想实现与仅使用我的代码相同的事情

文档状态

所以我尝试了

或者

但显然我错过了一些观点

NSFontManager 中的实际实现如何更改 NSTextField 上的字体以及如何重现

0 投票
2 回答
476 浏览

xcode - 为什么 NSFontManager.availableMembers(ofFontFamily:) 在 Xcode 8 GM 中崩溃?

我在 Xcode 8 Beta 6 (8S201h) 中写了这个:

它工作得很好。现在我已经升级到Xcode 8 GM Seed (8A218a) Xcode 8 (8A218a),它崩溃了 ( EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0))。

使用调试器缩小范围,我发现里面的东西NSFontManager.availableMembers(ofFontFamily:)真的很讨厌这个,因为无论我放什么它都会崩溃,即使是像 Helvetica Neue 这样的常见(肯定安装!)字体。

所以当我传递一个有效的字体系列名称时,它会崩溃......但是当我传递一个假字体时,它会返回nil.

这是我可以解决的问题,还是只是Xcode 8 GM Seed Xcode 8 的问题,将在 SDK 更新中解决?


在查看了崩溃日志后,我看到了这个可疑之处:

因此,它似乎在 Swift-Foundation 中崩溃,在某个名为_forceBridgeFromObjectiveC...

0 投票
1 回答
95 浏览

ios - NSFont 在 macOS Catalina 中无法正常工作

上面的代码行以前工作得很好,但现在它在 Catalina 中不起作用。我的 fontRef 为零。.SFNS-Light剧照显示为可用字体。有趣的是它仍在工作

有人遇到过这个问题吗?解决它的最佳方法是什么?

0 投票
0 回答
31 浏览

appkit - macOS:“SF Pro Text”在新计算机上不可用

我想在我的应用程序中使用“SF Pro Text”字体。当我在我的主计算机(运行 macOS11 Big Sur)上构建我的应用程序时它工作正常,但我有一个运行 macOS Monterey 的第二个分区,它似乎根本不可用,无论是通过 Interface Builder 还是通过代码(使用 NSFontManager)。在我的 Monterey 分区上使用它会返回 nil:

是什么赋予了?我必须手动安装字体吗?我以为它会随系统一起提供,因为它是“系统字体”?