Lup*_*rus 9 swiftui mac-catalyst
我刚刚更新到 Big Sur,现在我的 Catalyst 应用程序出现严重问题。我用类似的代码创建了一个新项目来测试它。行为有点不同,但在这两种情况下都有一点,点击停止工作或至少不再可靠。
以这个示例代码为例:
struct ContentView: View {
private var tabs = ["tab1", "tab2", "tab3"]
@State private var selectedTab = 0
var body: some View {
VStack {
self.fakeTabs()
self.tabView()
}
}
private func fakeTabs() -> some View {
HStack(spacing: 0) {
// ========================================================
// Tabs
// ========================================================
ForEach(self.tabs, id: \.self) { tab in
ZStack {
// background
Rectangle()
.fill(self.isSelected(tab: tab) ? Color.blue : Color.green)
.border(Color.black, width: 1)
.contentShape(Rectangle())
// icon
HStack(spacing: 15.0) {
Image(systemName: "folder")
.foregroundColor(.white)
.frame(width: 20, height: 20)
Text(tab)
.font(.caption)
}
}
.onTapGesture {
self.selectedTab = self.tabs.firstIndex(where: { $0 == tab }) ?? 0
}
}
}
.frame(height: 30)
}
private func tabView() -> some View {
TabView(selection: self.$selectedTab) {
ForEach(self.tabs.indices) { index in
let tab = self.tabs[index]
Text("Tab selected: \(tab)")
.tabItem { Text(tab) }
.tag(index)
}
}
}
private func isSelected(tab: String) -> Bool {
if let index = self.tabs.firstIndex(where: { $0 == tab }) {
if index == self.selectedTab {
return true
}
}
return false
}
}
Run Code Online (Sandbox Code Playgroud)
如果您开始单击底部的选项卡栏,它会起作用。如果您然后继续单击顶部的选项卡,它也可以工作。但是点击顶部的假标签后,你就不能再点击底部的 TabBar 了。
其他人是否遇到过这个问题?这是一个大苏尔错误吗?
编辑
它在 iPadOS 上的模拟器中完美运行。
小智 3
我面临着非常相似的问题。我还有一个 HStack 作为主视图。每行都有按钮和文本字段。添加/删除列时,按钮停止工作,并且无法再通过单击更改焦点文本字段(右键单击仍然有效)。还观察到 ZStack 中的非工作按钮。仍在找出问题场景以可靠地重现它。可能是 HStack 的一些东西,因为我们都使用它们。
| 归档时间: |
|
| 查看次数: |
365 次 |
| 最近记录: |