xcode 更改.searchable()元素的颜色

q8l4jmvw  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(75)

我在NavigationStack上使用.searchable()修饰符。我想更改取消按钮的颜色,因为它与我的应用程序颜色不匹配。我该怎么办?
这是我已经尝试过的,没有运气:accentcolor,tint,foregroundcolor,background change following.searchable()添加深色主题,.preferredColorScheme(.dark)following .searchable(仅更改文本栏的颜色,将UINavigationBar.appearance().tintColor = .白色或UISearchBar.appearance().overrideUserInterfaceStyle = .dark添加到应用程序的init
我想创建一个Zstack来用我自己的文本做一个框来覆盖cancel按钮,但这听起来像是一个很大的工作,因为当单击文本字段时,cancel按钮会随着动画移动。并且它将根据设备方向和设备类型而变化。
任何建议将是有益的!

b5buobof

b5buobof1#

您应该将tint添加到导航堆栈/拆分视图,而不是searchable视图。
例如,在

@State var search = ""

var body: some View {
    NavigationStack {
        List {
            Text("Foo")
            Text("Bar")
        }
        .searchable(text: $search)
    }.tint(Color.red)
}

字符串
“取消”按钮将显示为红色。
或者,您也可以更改资源目录中的“AccentColor”颜色。这会更改所有未指定.tint(...)的视图的色调,包括搜索栏的“取消”按钮。
请注意,这也会更改导航栏中工具栏项的色调,但您可以通过向工具栏项添加自己的色调来轻松覆盖它。

.toolbar {
    ToolbarItem(placement: .navigation) {
        Button("Foo") { ... }
            .tint(Color.blue)
    }
}

相关问题