スペルチェックチュートリアル

3437 ワード

作者:Arthur Knopper,原文リンク,原文日付:2015-12-22訳者:鐘穎Cyan;校正:Cwift;原稿:CMB
原文の日付が早いため、文章コードは新しいバージョンに更新されました.
UItextCheckerオブジェクトは、文字列のスペルチェックに使用できます.このチュートリアルでは、Table Viewに単語を表示します.単語が選択されるとスペルチェックが行われ、スペルが正しい背景が緑になります.そうしないと赤になります.このチュートリアルはXcode 7.2およびiOS 9環境で行います.
Xcodeを開き、新しいSingle Viewアプリケーションを作成します.IOS 9 SpellingCheckerTutorialをプロジェクトの名前として使用し、あなたの習慣に従ってOrganization NameとOrganization Identifierを記入します.開発言語としてSwiftを選択し、DevicesがiPhoneのみであることを確認します.
StoryboardからViewControllerを削除し、Navigation Controllerを空のキャンバスにドラッグすると、初期ViewControllerが削除されるとプロジェクトのエントリは存在しません.Navigation Controlを選択してAttribute Inspectorを開き、View Controlという領域で「Is Initial View Control」をチェックします.
Table View ControlのNavigation Barをダブルクリックし、タイトルを「Choose the right spelling」に設定します.Table View Cellを選択してAttribute Inspectorを開き、Table View Cellという領域でIdentifiierを「cell」に設定します.
Storyboardは次のように見えます.
ViewControllerをStoryboardから削除するので、同時にViewControllerを削除することができる.swiftファイル.プロジェクトに新しいファイルを追加し、iOS->Source->Cocoa Touch Classを選択し、TableView Controlと名前を付けてUItableView Controlから継承します.
TableViewControllerを開きます.swiftファイルと次のメンバーの追加

let words = ["devalopment", "development","devellopment"]

この配列の文字列はTable Viewの上に表示されます.次に、定義済みのプロキシメソッドを変更します.

 override func numberOfSections(in tableView: UITableView) -> Int {
        return 1;
    }
    
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return words.count
    }
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)

        //    cell...
        cell.textLabel?.text = words[indexPath.row]
        cell.textLabel?.backgroundColor = UIColor.clear
        return cell
    }

単語配列によってTable Viewが表示され、1つの領域があり、合計3行です.cellの背景色は、後でcellの背景色が変わるため、透明色に設定されています.ユーザがリストの1行を選択すると、プロキシメソッドtableView(_:didSelectRowAt:)が呼び出される.

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let cell = tableView.cellForRow(at: indexPath)!
        if wordIsSpelledCorrect(word: (cell.textLabel?.text)!) {
            cell.backgroundColor = UIColor.green
        } else {
            cell.backgroundColor = UIColor.red
        }
        
        tableView.reloadData()
    }

Table View Cellは、単語配列内の単語から初期化されます.単語のスペルが正しい場合、cellの背景色は緑になります.そうしないと赤になります.実際のスペルチェックのコードはwordIsSpelledCorrectメソッドで実現されます.

func wordIsSpelledCorrect(word: String) -> Bool {
    let checker = UITextChecker()
    let range = NSMakeRange(0, word.characters.count)
    let wordRange = checker.rangeOfMisspelledWord(in: word, range: range, startingAt: 0, wrap: false, language: "en")    
    return wordRange.location == NSNotFound
}

UItextCheckerクラスは、文字列のスペルが正しいかどうかを検出するために使用できます.検出範囲は単語全体です.rangeOfMisspelledWordInStringメソッドは、スペルミスの範囲をチェックするために使用されます.単語のスペルが正しい場合、戻り範囲のlocationNSNotFoundになるので、戻り値はtrueで、そうでなければfalseになります.
プロジェクトをコンパイルして実行し、リストの行を選択し、スペルが正しいと背景色が緑になり、そうでないと赤になります.
ioscreatorのGitHub倉庫でIOS 9 SpellingCheckerTutorialのソースコードを見つけることができます.
本文はSwiftGG翻訳グループから翻訳して、すでに作者の翻訳の授権を得て、最新の文章は訪問して下さいhttp://swift.gg.