问题标签 [nsfont]

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 投票
5 回答
3714 浏览

swift - 使用 Swift 向 macOS 应用程序添加自定义字体

我遵循了一堆教程,但它不起作用:我只是想向 macOS 应用程序添加自定义字体。

我基本上尝试了什么:

  1. .ttf字体文件添加到我的项目中:目标成员资格已设置,我还确保使用Copy Fileswithin复制文件Bundle Phases。编译后我可以看到所有文件都在 Bundle 中。所以这似乎工作得很好。

在此处输入图像描述

  1. Info.plist:我为每个要添加的字体文​​件添加Fonts provided by applicationmyFont.tff并创建了一个项目(值如)。

  2. 我确保我使用了正确的字体名称。我在我的系统上安装了字体并使用 Interface Builder 配置了一个标签,以便它使用所需的字体。我打印了它的价值print(myLabel.font.fontName)

  3. 令人困惑:如果我想添加到应用程序中的完全相同的字体文件安装在系统 Fontbook 中并激活,那么一切正常。当我停用它时,它不起作用。对我来说,这表明我使用了正确的字体名称。

  4. 我找到ATSApplicationFontsPath并尝试将其添加到 中Info.plist,但使用路径(由文档推荐)或值.(似乎对那里的某些人有用)都没有成功。

在此处输入图像描述

感谢任何帮助!

0 投票
1 回答
395 浏览

macos - 当点大小非常小时,sizeWithAttributes 在 Mac 上使用 NSFont 给出错误的高度

我正在开发一个 Mac 应用程序,它可以让用户放大内容。我需要测量我渲染的文本的大小。当我缩放字体以进行缩放时,字体的磅值非常小(即 0.001)。当我[NSString sizeWithAttributes:]用来获取字符串的大小时,我得到了正确的宽度,而高度总是得到 1.0。我还有一个 iOS 应用程序,这个渲染类在 iOS 和 Mac 上都使用。在 iOS 上,当我使用UIFont点大小为 0.001 的 a 时,我调用sizeWithAttributes.

0 投票
1 回答
626 浏览

swift - 系统字体在 iOS 模拟器中不起作用

我已经阅读了关于这个主题的所有问题和答案,它们似乎都适用于自定义字体,而不是系统字体。

我使用界面生成器并在 SpriteKit 场景中有一个 SKLabelNode,我将字体更改为“Lithos Pro”。它在 IB 中正确显示,但在模拟器中运行时会显示通用字体。我还以编程方式将 UITextField 添加到场景中,尝试使用同样不起作用的字体。

据我了解,这包含在 NSFont 包中,但只是为了确认我将 TTF 文件添加到项目中并将它们包含在我的目标资源中。还是不行。

想法?

0 投票
3 回答
582 浏览

swift - 在 NSView 中编写

我正在尝试在 NSView 画布中呈现文本。我需要写三行文字并忽略超出的内容。带有提供的 rect 的 String.draw(in:withAttributes) 似乎很完美。我的代码如下所示:

如果不进行调整,我只会渲染两行文本:

在此处输入图像描述

我遵循这些准则:https ://developer.apple.com/library/content/documentation/TextFonts/Conceptual/CocoaTextArchitecture/FontHandling/FontHandling.html#//apple_ref/doc/uid/TP40009459-CH5-SW18

我错过了什么?

0 投票
1 回答
158 浏览

cocoa - AppKit 中的固定间距数字

我有一个带计时器的应用程序。此计时器位于视图的中心。当 macOS 的默认字体是 Helvetica Neue 时,效果很好。字体的数字似乎是均匀分布的,所以当计时器运行时,一切都保持在原位。

现在使用 San Francisco 作为默认字体,这被打破了。Ever number 似乎有不同的宽度,导致计时器在运行时不断变化。将字体硬编码到 Helvetica Neue 可以解决问题,但我想使用操作系统默认的字体。

是否可以使用 NSTextField 设置某种提示,以像以前一样呈现具有固定宽度数字的默认系统字体?我似乎记得这是可用的,但我找不到它。我不想使用固定宽度的字体,因为它破坏了美感。似乎 iOS 上的秒表应用程序正在以某种方式做到这一点。

0 投票
3 回答
1102 浏览

ios - NSFont 和 UIFont 有什么区别

在搜索问题的解决方案时,我发现NSFontUIFont都有,

两者之间的基本区别是什么,我们应该何时使用?

0 投票
1 回答
674 浏览

swift - NSFont(name:size:) 不适用于所有字体

0 投票
1 回答
194 浏览

swift - 等价于 NSFont 中的 UIFont .withSize

我正在努力让 HandyUIKit 字符串扩展与 AppKit 一起工作。

什么是等价物

在 Appkit 和 NSFont 中?

这是我正在处理的代码部分:

0 投票
0 回答
228 浏览

ios - 跨设备(iOS 和 Mac)使用 NSAttributedString

我想在我的 iOS 和 Mac 应用程序中启用带有富文本编辑选项(目前为粗体、斜体和下划线)的 UITextView 和 NSTextView。我设法弄清楚如何将这些属性设置为 NSAttributedString,以及从视图中保存和检索 NSAttributedStrings 的基础知识,甚至使它们跨设备同步,但我不知道如何跨设备和平台进行这项工作可能有不同的字体用于呈现数据。

例如。在设备 A 上,用户设置了字体大小 14。他/她保存了一些文本,其中一部分为粗体,然后保存到 NSAttributedString,它保存了整个字体大小。

这将被转换为 NSData,并同步到另一台设备,但情况相反:

但在另一台设备上,用户可能有不同的字体大小设置,或者可能在 iOS 上使用动态类型。当我使用相同的属性字符串设置 textView 时,它将以原始设备的字体呈现,而不是第二个设备上使用的字体。

理想情况下应该如何处理?有没有办法从 NSAttributedString 中删除字体样式/大小/系列,但仍然保存放置粗体、斜体或其他属性的位置?如果是这样,是否有系统支持的方式来执行此操作,还是我必须自己执行此操作?还是在 HTML 或其他用于富文本编辑的跨平台标准之间来回转换更好?

0 投票
0 回答
244 浏览

textview - 在 nsTextView 中设置默认字体大小(不是字体名称)

在 xCode 中使用 Swift (with import Cocoa),我试图设置 TextView 窗口的默认字体大小。我看到我可以通过这种方式设置默认字体名称和大小:

而且我想我看到我需要使用 nsUserFontOfSize 仅指定点大小,但经过大量搜索后我无法弄清楚语法。究竟应该用什么语法代替字符串“NSFont(name: "Helvetica", size: 18);"?