ここでReactiveCocoaとReactiveSwfitの初心者...答えが明らかな場合は申し訳ありません。
Start Developing iOS Apps with Swiftサンプルを ReactiveSwift / ReactiveCocoaに適合させようとしていますが、UITextField
の Delegate メソッドを「翻訳」する際に問題が発生しています。 mealNameLabel
)のテキスト フィールドをキャプチャできます。
- func textFieldShouldReturn(_ textField: UITextField) -> Bool
私は使っている
nameTextField.reactive.textValues.observeValues { value in
viewModel.mealName.swap(value ?? "")
}
// Setup bindings to update the view's meal label
// based on data from the View Model
mealNameLabel.reactive.text <~ viewModel.mealLabel
テキストフィールドからビューモデルに値を取得し、ビューモデルのラベルをUILabelにパーコレートします(複雑な...)
viewController
のデリゲートとしてを維持UITextField
し、チュートリアルに示されている上記のメソッドをまだ実装している限り、それはうまく機能します。本質的に:
override func viewDidLoad() {
super.viewDidLoad()
nameTextField.delegate = self
// view controller logic
...
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
// Hide the keyboard.
textField.resignFirstResponder()
return true
}
使ってみた
nameTextField.reactive.controlEvents
controlEvents
しかし、 (ドキュメントはどこにありますか?)の理解が不足しているため、それは惨めに失敗しました。
では、ユーザーが編集を完了したときにキーボードを非表示にするには、「リアクティブな方法」で何をする必要がありますか?
ありがとう !!!