等价于 NSFont 中的 UIFont .withSize

Posted

技术标签:

【中文标题】等价于 NSFont 中的 UIFont .withSize【英文标题】:Equivalent of UIFont .withSize in NSFont 【发布时间】:2017-12-11 22:06:46 【问题描述】:

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

什么是等价物

var font : UIFont    
font.withSize(font.pointSize * scriptedTextSizeRatio)

在 Appkit 和 NSFont 中?

var font : NSFont    
font.withSize(font.pointSize * scriptedTextSizeRatio)

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

 let capturedSubstring = unprocessedString.attributedSubstring(from: match.range(at: 1)).mutableCopy() as! NSMutableAttributedString
 let captureFullRange = NSRange(location: 0, length: capturedSubstring.length)
 capturedSubstring.addAttribute(.font, value: font.withSize(font.pointSize * scriptedTextSizeRatio), range: captureFullRange)

【问题讨论】:

可可中的 AppKit?怎么样? 【参考方案1】:

NSFont 似乎没有像 UIFont 这样的等效方法 withSize

一种解决方案是使用:

var font: NSFont = ... // some font
var newFont = NSFont(descriptor: font.fontDescriptor, size: font.pointSize * scriptedTextSizeRatio)

请注意,newFont 是可选的,因此请根据需要检查结果。

【讨论】:

以上是关于等价于 NSFont 中的 UIFont .withSize的主要内容,如果未能解决你的问题,请参考以下文章

UIFont - 如何获取系统细字体

检查 NSFont 在 Swift 中是不是为粗体

Cocoa NSFont 'leading' 属性构建错误

Cocoa NSFont 'leading' 属性构建错误

字体“SF Mono”的 NSFont 名称是啥?

从 NSFont 获取所有字符