SwiftUI:MacOS 上的自定义字体

问题描述 投票:0回答:2

目标:在 SwiftUI 上使用自定义字体,针对 MacOS。

问题:在 iOS 上,自定义字体在 SwiftUI 中工作正常: enter image description here

但在 MacOS 上,它不会: enter image description here

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            Image(systemName: "globe")
                .imageScale(.large)
                .foregroundColor(.accentColor)
            Text("Hello, world!")
                .font(Font.custom("SourceCodePro-ExtraLight", size: 40))
            Text("Hello, world!")
                .font(Font.custom("LobsterTwo", size: 40))

        }
        .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

尝试过:我确保这两种字体都添加到相应 iOS 和 MacO 目标上的“信息”选项卡中: enter image description here enter image description here

似乎是 SwiftUI 在幕后使用 UIFont 的问题,需要一个特殊的 NSFont...

非常感谢任何帮助!

ios xcode macos swiftui
2个回答
7
投票

enter image description here

通过将此行添加到 plist 文件和一个“.”来解决作为值


0
投票

只是Mane Manero的回答的一些进一步解释:

Info.plist
ATSApplicationFontsPath实际上是指应用程序包的
Resources
文件夹,而不是您的项目目录。这是来自docs的具体参考:

If you set this key, the system allows the app in the bundle to use the fonts at the specified path. Set this key to the path relative to the bundle’s Resources folder. For example, if the fonts are in .../Resources/MyFonts, set this key to MyFonts/.

您可以通过在 Xcode 中存档和导出您的应用程序来确认这一点 -> 将应用程序包保存到

Applications
文件夹 -> 右键单击应用程序包 > 显示包内容 > 打开
Resources
文件夹 -> 您应该看到您的
.ttf
 .otf
此目录中的字体文件。

© www.soinside.com 2019 - 2024. All rights reserved.