首页 > 解决方案 > Swift - 快速搜索单词列表

问题描述

我在 SwiftUI 中有一个文本字段,用户在其中输入一个单词。我捕获使用组合输入的字符,并希望搜索单词列表并列出在其中找到字符的单词。
例如,用户输入 d - 列表显示 dan das dat den dev die din div 用户输入 de - 列表显示 den dev 用户输入 dev - 列表显示 dev

.onReceive(Just(textSearch.text)) { 
newString in if self.usedWords.contains(newString) {
 self.mySearch(searchWord: newString) } } 

仅当 usedWords 的元素中的 newString 完全匹配时才调用 mySearch 函数...我需要部分匹配

最后一个用例适用于 string.contains("dev"),但不适用于 string.contains("de")。显然 contains 无法完成匹配子字符串并返回所有包含该子字符串的工作。我可以使用另一个快速实用程序吗?

感谢您的任何帮助

标签: arraysswiftstringswiftuicombine

解决方案


尝试这样的事情:

    .onReceive(Just(textSearch.text)) { newString in
            if newString.isEmpty { return }
            let result = self.usedWords.filter { $0.hasPrefix(newString) }
            result.forEach { tx in
                self.mySearch(searchWord: tx)
            }
    }

推荐阅读