切换选项卡之后,当标签栏隐藏在初始选项卡中时 我经历了以下概述的行为(或有关视频版本,请参见此处)。当我从藏在iPados或MacOS上从将选项卡栏隐藏到另一个选项卡的选项卡上进行编程导航时,TAB栏是RE ...

问题描述 投票:0回答:1
而不是SwiftUI

TabView),但是由于仅SwiftUI应用程序可以重现该问题,因此我为简单起见了一个。 import SwiftUI @main struct HiddenTabBarTestApp: App { @State private var selectedIndex = 0 var body: some Scene { WindowGroup { TabView(selection: $selectedIndex) { Text("First Tab") .tabItem { Label("1", systemImage: "1.circle") } .tag(0) NavigationStack { Button("Go to first tab") { selectedIndex = 0 } .searchable(text: .constant("")) } .tabItem { Label("2", systemImage: "2.circle") } .tag(1) } } } }

取代:

使用iOS应用模板创建一个新的SwiftUi应用程序,并使用上面的代码
在iPados或Macos
上运行该应用程序 nave to novita

单击搜索栏

    单击“转到第一个选项卡”按钮
  1. 标签栏不再可见
  2. i我将Xcode 16.2与iPados 18.2和MacOS15.3.1.
  3. 一起使用
  4. 这是框架中的错误还是预期的行为?如果是预期的行为,您是否有一个很好的解决方案/解决方法,在导航到另一个选项卡之前,您不需要我以编程方式(例如,使用
  5. @Environment(\.dismissSearch)
  6. )结束搜索?目标是在第一个选项卡中显示“标签栏”,同时将搜索打开在第二个选项卡中。
  7. 注:
  8. 我最初直接在Apple开发人员论坛中提出了这个问题,但在那里没有得到回应(请参阅
  9. HereY
)。

我能够在iPad上复制该问题。当搜索字段接收到焦点时,标签栏将被隐藏。当导航回到第一个选项卡视图时,选项卡栏不会再次显示,除非首先取消搜索。

Macos,我发现即使搜索字段的焦点也是可见的,也可以看到标签栏。我想这可能取决于窗口工具栏样式或其他工具栏修饰符。 ayway,一个解决方法是使用the biondifier的变体,该变体采用boolean binting

.searchable

isPresented
:(需要iPados 17.0+ / macOS 14.0+)。然后:

ios swift swiftui uikit
1个回答
0
投票

searchable(text:isPresented:placement:prompt:)

@State private var isSearching = false

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.