1

总的来说,我仍在学习 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.blackNSColor(Color.black)但没有找到Fonts的工作示例。

另外,如果有人能真正解释发生了什么以便我能理解,我将不胜感激,而不仅仅是复制和粘贴

太感谢了!

4

0 回答 0