问题标签 [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.
cocoa - 如何生成一组过滤的可用字体系列名称?(如在 Pages 或 TextEdit 中)
我想制作一个类似于 Pages.app(或 TextEdit.app)中的弹出按钮,其菜单是字体系列的过滤列表。
我可以从 中获得一系列可用的字体系列名称[NSFontManager availableFontFamilies]
,但这提供的字体系列比 Pages 的弹出菜单中的要多得多。
另一方面,我可以从 中获得似乎正确过滤的字体描述符集[NSFontCollection fontCollectionWithName:NSFontCollectionUser]
,但这也包括该系列的每个成员(斜体、粗体等)。我不想在弹出窗口中包含每个成员,只包含姓氏。
我想要过滤后的一组姓氏。
我从 UI 中获得的名称NSFontManager
似乎已针对 UI 进行了清理,而我从字体描述符的属性字典 ( [myFontDescriptor fontAttributes][NSFontNameAttribute]
) 中获得的名称值却没有。所以我不能只根据字符串值对两组进行简单的集合交集,相同的东西可能有不同的名称。
cocoa - 将 SVG 的字体大小转换为 NSFont 大小
有点晦涩 - 我希望那里的人对 Webkit 的内部有一定的了解。
SVG 规范是这样描述字体大小的:“在多行布局环境中将多行文本设置为实线时,此属性指的是从基线到基线的字体大小。对于 SVG,如果提供的 a 没有单位标识符(例如, 一个不合格的数字,例如 128),SVG 用户代理将其处理为当前用户坐标系中的高度值。”
我想知道的是 Webkit 如何将此值映射到 OS X 中的实际 NSFont pointSize。
简单地将这个值传递给 NSFont 作为大小似乎是不够的,甚至考虑到用户坐标和点的一些缩放。我猜这是因为 NSFont 的 pointSize 与 SVG 显然使用的基线到基线测量不对应。所以问题是 - 如何从这里到达那里?
xcode - 用于选择字体的 Xcode 插件?
是否有一些方便的 Xcode 插件允许我们像ColorSense允许我们在代码中方便地使用颜色一样选择字体?
例如显示字体对话框并将适当的NSFont
初始化程序调用作为当前在编辑器中打开的文件中的文本返回的东西?
objective-c - 确定 NSNaturalTextAlignment 的实际文本对齐值?
我目前正在尽我所能了解 Cocoa 的文本“架构”。我煞费苦心地学习了所有关于NSFontDescriptor
、NSTextTab
和NSTextView
类的知识,我想我真的理解它是如何工作的。但是,我似乎无法弄清楚一件事:NSNaturalTextAlignment
. 我的意思是,我明白了。我知道当字体的“脚本”是 RTL 时,自然对齐是正确的,当它是 LTR 时,自然对齐是左。所有这些都是有道理的。但是,如何确定字体脚本的自然方向?我问是因为我的小应用程序是如何设置的。我目前有一个带有通常嫌疑人的迷你格式化栏:
NSPopUpButton
选择字体系列NSPopUpButton
选择字体ACustomComboBox
选择字体大小NSSegmentedControl
带有B,I, U 等的段。
在这些元素之后,我有了对齐控件,它也是一个NSSegmentedControl
. 在其中,我有四个选项:左、居中、右和对齐。同样,非常基本的东西。对齐控件的巧妙之处在于,我已将每个段的标记设置为对应于一个NSTextAlignment
值。因此,当按下“左”段时,所选文本向左对齐。“居中”、“正确”和“正当”也是如此。
问题是很多时候属性字符串NSParagraphStyle
会返回一个NSNaturalTextAlignment
值。
该文档指出:
返回值是“NSTextAlignment”中描述的对齐方式之一。
文本 using
NSNaturalTextAlignment
实际上是使用其他对齐方式之一显示的,具体取决于文本脚本的自然对齐方式。
好吧,我很高兴 Apple 知道文本脚本的自然对齐方式,但我该如何找到它呢?我目前实施了一个非常糟糕的解决方案,但老实说,我想不出任何解决办法。糟糕的解决方案如下所示:
文本视图的“基本”方向并没有真正告诉我字体本身的方向,但至少它暗示了字体可能的方向。我不知道。我只是感觉有一个超级秘密NSFontDescriptor
属性有这个信息,但我没有找到它。可可大师,有什么建议吗?提前致谢!
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 上工作正常。
感谢您的任何指导!
objective-c - Objective-C 应用程序中的自定义字体
这个问题并不是在问你表面上会怎么想。我已经知道如何在 Objective-C 应用程序中使用自定义字体。问题更多的是关于使用自定义字体的细节,主要是——如果我使用一种自定义字体,假设其他人可能没有在他们的机器上,它仍然会正确呈现它吗?如果某人没有相同的字体,我还没有看到任何关于这是否会成为一个因素的信息。
另外,我的问题和界面生成器中的对象有什么联系吗?谢谢。
objective-c - 无法在 Mac 应用程序中添加自定义字体(OSX 10.9+ Xcode5+)
我浏览了这些 SO 帖子:
我尝试了完全相同(多次重新检查),但我无法将自定义字体添加到我的 Mac 应用程序。
所有细节都显示在附图中。
Plist 已更新:(已尝试字体和字体/两者)
在 App Bundle 中,它位于字体文件夹路径中:
但我的代码无法找到并读取字体:
非常感谢任何帮助/指出我的错误。
objective-c - 具有 ASCII 字符的 NSFonts
我正在制作自己的字体对话,但它嵌入在 WebKit 中。它几乎按照我想要的方式工作,除了一部分。它显示了无法使用标准 ASCII 字符编写的字体。它们以标准拉丁字符出现,如下所示。(注意我正在使用 CSS 设置菜单字体)
这发生在诸如 Wingdings 之类的字体和诸如中文之类的语言的字体中。根据我的阅读,这是因为 ASCII 字符与字体字符之间没有映射。
我本质上想过滤掉这些字体,以便只出现可以实际书写且不同的字体。这应该是可能的,Pages 设法做到了。
我尝试过这样的事情,但它有时会删除它不应该删除的字体并留下它应该删除的字体。
objective-c - 你如何比较 Swift 中的 NSFontSymbolicTrait 和 NSFontBoldTrait?
我正在尝试按位比较NSFontSymbolicTraits
和NSFontBoldTrait
Swift。
在 Objective-C 中,它会这样做:
所以我认为它应该在 Swift 中是这样的:
...但是,这会导致以下错误:
无法使用类型为“(NSFontSymbolicTraits,Int)”的参数列表调用“&”
有人知道我错过了什么吗?任何帮助将不胜感激。
备注:
- 我像疯子一样用谷歌搜索,花了几个小时试图找到解决方案,并通读文档
NSFontDescriptor
和其他NSFont
相关类。 - 我不太了解 Obj-C 所以我不知道是不是因为
NSFont*Trait
常量在 Swift 中的实现方式不同?甚至不确定是不是这样。