单击搜索栏时如何显示单独的视图? [SwiftUI] [关闭]
Posted
技术标签:
【中文标题】单击搜索栏时如何显示单独的视图? [SwiftUI] [关闭]【英文标题】:How to bring up a separate view when a search bar is clicked? [SwfitUI] [closed] 【发布时间】:2021-11-02 19:55:33 【问题描述】:我正在尝试实现一个显示单独视图的搜索栏(参见 Twitter 示例)。
这是如何实现的?我最初的想法是以某种方式使用NavigationView
环绕搜索栏视图,当用户点击搜索栏时,调用NavigationLink
会调出单独的视图。
但这是正确的方法吗? Twitter 示例似乎没有显示 NavigationView
元素,如“
【问题讨论】:
Twitter 可能正在使用 UIKit。在 SwiftUI 中,您可以键入FocusState
的更改。
谢谢你,@Yrb。我以为FocusState
是为了将焦点转移到不同的文本字段?您将如何使用它来控制视图?我在 Apple 的文档中找不到任何有用的信息。
FocusState
是一个状态,它定义了某物是否被聚焦,但其他人可以绑定到它并根据动作改变它。在这种情况下,操作将是用户点击文本字段。
【参考方案1】:
FocusState
是一个状态,但它设置了一个变量。因此,您可以像这样使用.onChange(of:perform:)
关闭该更改。
struct ContentView: View
@FocusState var isFocused: Bool
...
var body: some View
TextField("TextField", text: $text)
.focused($isFocused)
.onChange(of: isFocused, perform: newValue in
print("focus")
)
...
如果你在其他TextFields
上使用它不会起作用,但是会触发它。
【讨论】:
以上是关于单击搜索栏时如何显示单独的视图? [SwiftUI] [关闭]的主要内容,如果未能解决你的问题,请参考以下文章