恐龙网站建设,淘宝网站开发费用,包装袋设计,怎样在自己的网站上家程序概览
有些情况下#xff0c;我们需要为文本编辑器实现文本的查找和替换功能#xff08;find replace#xff09;#xff0c;如果完全靠自已撸码还是比较棘手的。
所幸的是#xff0c;从 SwiftUI 4.0 #xff08;iOS 16#xff09;开始#xff0c;Apple 已经将查…
概览
有些情况下我们需要为文本编辑器实现文本的查找和替换功能find replace如果完全靠自已撸码还是比较棘手的。
所幸的是从 SwiftUI 4.0 iOS 16开始Apple 已经将查找与替换功能原生嵌入到 TextEditor 中了 只需几行代码我们即能恣意任性实现文本查找和替换功能的开启与关闭以及其它定制细节。
在本篇博文中就让我们一起来看看如何轻松实现它吧
Let‘s go 开启和关闭
从 SwiftUI 4.0 开始TextEditor 已经可以原生支持查找和替换功能了。
struct ContentView: View {State private var bio Describe someone, Thanks./n contained no UIScene configuration dictionary (looking for configuration named BEST!State private var isShowingFindNavigator falsevar body: some View {NavigationStack {TextEditor(text: $bio).font(.title).padding().navigationTitle(查找与替换DEMO)}}
}如果设备已连接物理键盘我们可以使用键盘快捷键 CmdF 开启查找界面用 OptionCmdF 来开启替换界面 我们还可以在 TextEditor 上调用 findNavigator() 修改器方法来手动启用和关闭查找和替换界面
struct ContentView: View {State private var bio Describe someone, Thanks./n contained no UIScene configuration dictionary (looking for configuration named BEST!State private var isShowingFindNavigator falsevar body: some View {NavigationStack {TextEditor(text: $bio).font(.title).findNavigator(isPresented: $isShowingFindNavigator).toolbar {Button(打开查找与替换) {isShowingFindNavigator.toggle()}}.padding().navigationTitle(查找与替换DEMO)}}
}默认情况下findNavigator() 首先弹出查找界面我们可以点击其中的放大镜小图标来继续显示替换界面 需要注意的是在 Xcode 14.2 预览中无法通过此种方法来显示替换界面必须在模拟器或真机中才可以。
自定义条件
有些情况下我们可能不希望 TextEditor 响应查找或替换功能。
这可以通过在 TextEditor 上调用 replaceDisabled() 或 findDisabled() 修改器来实现
struct ContentView: View {State private var bio Describe someone, Thanks./n contained no UIScene configuration dictionary (looking for configuration named BEST!State private var isShowingFindNavigator falsevar body: some View {NavigationStack {TextEditor(text: $bio).font(.title)// 不开启文本替换功能.replaceDisabled(true).findNavigator(isPresented: $isShowingFindNavigator).toolbar {Button(打开查找与替换) {isShowingFindNavigator.toggle()}}.padding().navigationTitle(查找与替换DEMO)}}
}如上代码所示我们为 TextEditor 关闭了文本替换功能依然支持查找。
再次运行 App现在已无法显示替换界面了 总结
在本篇博文中我们通过 SwiftUI 4.0iOS 16原生提供的支持仅用几行代码就实现了文本的查找与替换功能棒棒哒 更多关于 TextField 视图相关的操作请猛戳 SwiftUI如何让绑定到同一个状态的多个TextField呈现出不同输入行为 链接观赏。 更多关于 SwiftUI 知识的精彩博文请移步 开发疑难秒懂百科 专栏欣赏。
感谢观赏再会