问题标签 [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 投票
2 回答
651 浏览

cocoa - 如何生成一组过滤的可用字体系列名称?(如在 Pages 或 TextEdit 中)

我想制作一个类似于 Pages.app(或 TextEdit.app)中的弹出按钮,其菜单是字体系列的过滤列表。

我可以从 中获得一系列可用的字体系列名称[NSFontManager availableFontFamilies],但这提供的字体系列比 Pages 的弹出菜单中的要多得多。

另一方面,我可以从 中获得似乎正确过滤的字体描述符集[NSFontCollection fontCollectionWithName:NSFontCollectionUser],但这也包括该系列的每个成员(斜体、粗体等)。我不想在弹出窗口中包含每个成员,只包含姓氏。

我想要过滤后的一组姓氏

我从 UI 中获得的名称NSFontManager似乎已针对 UI 进行了清理,而我从字体描述符的属性字典 ( [myFontDescriptor fontAttributes][NSFontNameAttribute]) 中获得的名称值却没有。所以我不能只根据字符串值对两组进行简单的集合交集,相同的东西可能有不同的名称。

0 投票
1 回答
90 浏览

cocoa - 将 SVG 的字体大小转换为 NSFont 大小

有点晦涩 - 我希望那里的人对 Webkit 的内部有一定的了解。

SVG 规范是这样描述字体大小的:“在多行布局环境中将多行文本设置为实线时,此属性指的是从基线到基线的字体大小。对于 SVG,如果提供的 a 没有单位标识符(例如, 一个不合格的数字,例如 128),SVG 用户代理将其处理为当前用户坐标系中的高度值。”

我想知道的是 Webkit 如何将此值映射到 OS X 中的实际 NSFont pointSize。

简单地将这个值传递给 NSFont 作为大小似乎是不够的,甚至考虑到用户坐标和点的一些缩放。我猜这是因为 NSFont 的 pointSize 与 SVG 显然使用的基线到基线测量不对应。所以问题是 - 如何从这里到达那里?

0 投票
0 回答
94 浏览

xcode - 用于选择字体的 Xcode 插件?

是否有一些方便的 Xcode 插件允许我们像ColorSense允许我们在代码中方便地使用颜色一样选择字体?

例如显示字体对话框并将适当的NSFont初始化程序调用作为当前在编辑器中打开的文件中的文本返回的东西?

0 投票
1 回答
614 浏览

objective-c - 确定 NSNaturalTextAlignment 的实际文本对齐值?

我目前正在尽我所能了解 Cocoa 的文本“架构”。我煞费苦心地学习了所有关于NSFontDescriptorNSTextTabNSTextView类的知识,我想我真的理解它是如何工作的。但是,我似乎无法弄清楚一件事:NSNaturalTextAlignment. 我的意思是,我明白了。我知道当字体的“脚本”是 RTL 时,自然对齐是正确的,当它是 LTR 时,自然对齐是左。所有这些都是有道理的。但是,如何确定字体脚本的自然方向?我问是因为我的小应用程序是如何设置的。我目前有一个带有通常嫌疑人的迷你格式化栏:

  • NSPopUpButton选择字体系列
  • NSPopUpButton选择字体
  • ACustomComboBox选择字体大小
  • NSSegmentedControl带有BI, U 等的段。

在这些元素之后,我有了对齐控件,它也是一个NSSegmentedControl. 在其中,我有四个选项:左、居中、右和对齐。同样,非常基本的东西。对齐控件的巧妙之处在于,我已将每个段的标记设置为对应于一个NSTextAlignment值。因此,当按下“左”段时,所选文本向左对齐。“居中”、“正确”和“正当”也是如此。

问题是很多时候属性字符串NSParagraphStyle会返回一个NSNaturalTextAlignment值。

该文档指出:

返回值是“NSTextAlignment”中描述的对齐方式之一。

文本 usingNSNaturalTextAlignment实际上是使用其他对齐方式之一显示的,具体取决于文本脚本的自然对齐方式。

好吧,我很高兴 Apple 知道文本脚本的自然对齐方式,但我该如何找到它呢?我目前实施了一个非常糟糕的解决方案,但老实说,我想不出任何解决办法。糟糕的解决方案如下所示:

文本视图的“基本”方向并没有真正告诉我字体本身的方向,但至少它暗示了字体可能的方向。我不知道。我只是感觉有一个超级秘密NSFontDescriptor属性有这个信息,但我没有找到它。可可大师,有什么建议吗?提前致谢!

0 投票
2 回答
680 浏览

objective-c - 子类化 NSFont

尝试编写一些在 iOS 和 OS X 之间工作的通用库。为了不通过在代码中放置大量#if TARGET_OS_IPHONE 来使应用程序混乱,我想我可以使用通用的 .h 子类化 UIFont 和 NSFont 和只需为每个构建使用单独的 .m 文件。所以我有以下子类结构 MyFont.h 和 MyFont_iOS.m 和 MyFont_OSX.m。每个目标都包含相应的 .m 文件。在 iOS 上运行良好,但在 OSX 上执行时,我得到一个 EXC_BAD_ACCCES,它使用类似的行创建字体对象

MyFont *myFont = [MyFont fontWithName:@"Arial" size:132.0];

我不能继承 NSFont 吗?

这是我的 NSFont 子类的基本代码示例(请注意,此时我在子类中没有专门的代码。这只是一个基本子类)

我的字体.h

MyFont_iOS.m

MyFont_OSX.m

尝试使用子类字体(在 iOS 应用程序中 - 工作正常!)

尝试使用子类字体(在 OS X 应用程序中 - 崩溃!)

仅供参考 - 我也在这条线上收到警告

使用“NSFont *”类型的表达式初始化“MyFont *”的不兼容指针类型

所以我肯定做错了什么,但只是不明白为什么它迫使我使用 NSFont 但在 UIFont 上工作正常。

感谢您的任何指导!

0 投票
1 回答
381 浏览

objective-c - Objective-C 应用程序中的自定义字体

这个问题并不是在问你表面上会怎么想。我已经知道如何在 Objective-C 应用程序中使用自定义字体。问题更多的是关于使用自定义字体的细节,主要是——如果我使用一种自定义字体,假设其他人可能没有在他们的机器上,它仍然会正确呈现它吗?如果某人没有相同的字体,我还没有看到任何关于这是否会成为一个因素的信息。

另外,我的问题和界面生成器中的对象有什么联系吗?谢谢。

在此处输入图像描述

0 投票
1 回答
1905 浏览

objective-c - 无法在 Mac 应用程序中添加自定义字体(OSX 10.9+ Xcode5+)

我浏览了这些 SO 帖子:

在 mac 包中嵌入字体

Cocoa 应用程序中的自定义字体

我尝试了完全相同(多次重新检查),但我无法将自定义字体添加到我的 Mac 应用程序。

所有细节都显示在附图中。

Plist 已更新:(已尝试字体和字体/两者) 在此处输入图像描述 在 App Bundle 中,它位于字体文件夹路径中: 在此处输入图像描述

但我的代码无法找到并读取字体: 在此处输入图像描述

非常感谢任何帮助/指出我的错误。

0 投票
1 回答
659 浏览

cocoa - 在 Cocoa 中创建带下划线的字体

全部,

根据这个NSFont 有唯一的方法来检索下划线字体参数。

有没有办法将字体设置为下划线?

谢谢你。

0 投票
0 回答
132 浏览

objective-c - 具有 ASCII 字符的 NSFonts

我正在制作自己的字体对话,但它嵌入在 WebKit 中。它几乎按照我想要的方式工作,除了一部分。它显示了无法使用标准 ASCII 字符编写的字体。它们以标准拉丁字符出现,如下所示。(注意我正在使用 CSS 设置菜单字体)

Wingdings 未显示在 Wingdings 中

这发生在诸如 Wingdings 之类的字体和诸如中文之类的语言的字体中。根据我的阅读,这是因为 ASCII 字符与字体字符之间没有映射。

我本质上想过滤掉这些字体,以便只出现可以实际书写且不同的字体。这应该是可能的,Pages 设法做到了。

我尝试过这样的事情,但它有时会删除它不应该删除的字体并留下它应该删除的字体。

0 投票
3 回答
1362 浏览

objective-c - 你如何比较 Swift 中的 NSFontSymbolicTrait 和 NSFontBoldTrait?

我正在尝试按位比较NSFontSymbolicTraitsNSFontBoldTrait Swift

在 Objective-C 中,它会这样做:

所以我认为它应该在 Swift 中是这样的:

...但是,这会导致以下错误:

无法使用类型为“(NSFontSymbolicTraits,Int)”的参数列表调用“&”

有人知道我错过了什么吗?任何帮助将不胜感激。

备注