UITextChecker与Swift 3

时间:2016-10-03 17:22:55

标签: ios swift xcode swift3 xcode8

我试图在Xcode 8中使用Apple的UITextChecker来自动搜索一串单词中的拼写错误,并提供有关替换的建议。我引用Apple API相对较新,所以任何帮助都会受到赞赏。

谢谢!

2 个答案:

答案 0 :(得分:1)

以下是如何使用它:

func correctWord(word: String, language: String = "en") -> Bool {
    let checker = UITextChecker()
    let range = NSRange(location: 0, length: word.utf16.count)
    let misspelledRange = checker.rangeOfMisspelledWord(in: word, range: range, startingAt: 0, wrap: false, language: language)

    return misspelledRange.location == NSNotFound
}

请注意,语言参数是可选的,但如果您想要更改"en"的语言,则可以传递它。

称之为:

let x = correctWord(word: "yweyuw") // false
let y = correctWord(word: "Hello") // true

答案 1 :(得分:1)

您可以使用此方法:“rangeOfMisspelledWordInString”

有关概述,您可以阅读文档。

https://developer.apple.com/reference/uikit/uitextchecker?language=objc

let word = "Testar"
let textChecker = UITextChecker()
let misspelledRange = textChecker.rangeOfMisspelledWordInString(
            word, range: NSRange(0..<word.utf16.count), startingAt: 0, wrap: false, language: "en_US")

        if misspelledRange.location != NSNotFound,
            let guesses = textChecker.guessesForWordRange(
                misspelledRange, inString: word, language: "en_US") as? [String]
        {
            print("Guess: \(guesses.first)") //Output is: Guess: Optional("Tester")

        } else {
            print("Not found")
        }