4

ディクテーションがいつ終了したかを知りたいです (理想的には、ディクテーションがいつ開始されたかも)。

UIViewControllerを含むMyは、プロトコルにUITextView準拠しています。UITextInputDelegate

それを機能させるには、にサブスクライブする必要がありましたUITextInputCurrentInputModeDidChangeNotification

override func viewDidLoad() {
    super.viewDidLoad()
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "changeInputMode:", name: UITextInputCurrentInputModeDidChangeNotification, object: nil)
}

そこにデリゲートを追加します(viewDidLoad()に追加するだけでは機能しませんでした)

func changeInputMode(sender : NSNotification) {
    textView.inputDelegate = self
}

口述の開始と停止で、UITextInput は必要なデリゲート メソッドを正しく呼び出すようになりました。

func selectionWillChange(textInput: UITextInput){    }
func selectionDidChange(textInput: UITextInput){    }
func textWillChange(textInput: UITextInput){    }
func textDidChange(textInput: UITextInput){    }

ただし、呼び出されないのは

func dictationRecordingDidEnd() {
    println("UITextInput Dictation ended")
}

なんで?ディクテーションが終了したときに通知を受け取る/メソッドを呼び出すにはどうすればよいですか?

4

1 に答える 1