总的来说,我仍在学习 SwiftUI 和开发。任何与 NSWhatever 相关的东西仍然让我失望。而且我知道我的问题只是缺乏理解:D
Rn,我正在构建一个 SwiftUI macOS 11 应用程序,它运行良好......但 SwiftUI 有其局限性。
现在,我想使用 NSTextField 而不是 SwiftUI 的 TextField()、bc 自定义 UI 等...
我的代码:
func makeNSView(context: Context) -> NSTextField {
let textField = FocusAwareTextField()
textField.placeholderAttributedString = NSAttributedString(
string: placeholder,
attributes: [
NSAttributedString.Key.foregroundColor: NSColor(Color.secondary),
NSAttributedString.Key.font: NSFont(name: "SF Pro", size: 32)!
]
)
textField.isBordered = false
textField.delegate = context.coordinator
textField.backgroundColor = NSColor.clear
...
...
...
我的问题:
NSAttributedString.Key.font:
需要一个NSFont
.
上面的代码构建得很好,但我宁愿坚持使用 SwiftUI 的动态字体系统并使用Font.largeTitle.bold()
而不是手动定义以使用SF Pro和字体大小。
我知道如何转换 Color.black
为NSColor(Color.black)
但没有找到Fonts的工作示例。
另外,如果有人能真正解释发生了什么以便我能理解,我将不胜感激,而不仅仅是复制和粘贴。
太感谢了!