私は iOS 8 用のカスタム キーボード拡張機能を作成していますが、キーボードの上にある UILabel に現在入力されている単語を反映しようとして失敗しました (オートコレクトと考えてください)。これまでのところ、私が書いたコードは、カーソルが書かれているときではなく、カーソルがある位置から別の位置に移動したときに、カーソルの前の文を反映しています。私が達成しようとしているのは、ネイティブ キーボードの最初の自動修正ボックスとまったく同じです。私が間違っていることを誰か教えてくれませんか?
コード:
override func textWillChange(textInput: UITextInput) {
var tokens = (self.textDocumentProxy as! UITextDocumentProxy).documentContextBeforeInput .componentsSeparatedByString(" ") as NSArray
var lastWord = tokens.lastObject as! String
println(lastWord)
bannerView?.btn1.setTitle(lastWord, forState: .Normal)
}
ボタンのタイトルを設定するために beforeCursor にスペース/ピリオド/コンマのいずれかが含まれている場合に条件を設定しようとしましたが、オート""
コレクト機能を作成できるようにするために単語を取得する必要があるため、長期的には効率的ではありません。
編集:
カーソルの前に単語を取得する方法 (上記のコードを更新) を理解しましたが、各文字が追加されるたびにラベルを更新する方法はわかりません。func textWillChange(textInput: UITextInput)
うまくいきません。それは私ではなく、彼女です。
ありがとう!