ディクテーションがいつ終了したかを知りたいです (理想的には、ディクテーションがいつ開始されたかも)。
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")
}
なんで?ディクテーションが終了したときに通知を受け取る/メソッドを呼び出すにはどうすればよいですか?