gpt4 book ai didi

swiftui - macCatalyst/SwiftUI 触摸栏

转载 作者:行者123 更新时间:2023-12-01 16:02:05 28 4
gpt4 key购买 nike

如何在 Catalyst- 用 SwiftUI 编写的应用程序中添加 Touch Bar 支持?

例如,如果我想在 View 中显示一个按钮:

import SwiftUI

struct ContentView: View {
var body: some View {
VStack{
#if targetEnvironment(macCatalyst)
Text("macOS")
.frame(maxWidth: .infinity, maxHeight: .infinity)
.focusable()
.touchBar {
Button(action: {
print("tapped")
}) {
Text("TestButton")
}
}
#endif
Text("iOS")
}
}
}

如果我在 macOS 应用程序中使用它,它可以工作,但如果我在 Catalyst 中使用它并添加 targetEnvironment,则会出现错误:

“focusable(_:onFocusChange:)”在 iOS 中不可用,“touchBar(content:)”在 iOS 中不可用

感谢您的帮助。

最佳答案

您可以添加自定义 View 修饰符:

struct TouchBarView: ViewModifier {
func body(content: Content) -> some View {
#if os(macOS)
return content
.touchBar { ... }
#else
return content
#endif
}
}

用法:

Text("Text")
.modifier(TouchBarView())

关于swiftui - macCatalyst/SwiftUI 触摸栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59682434/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com