这里是 ReactiveCocoa 和 ReactiveSwfit 的新手......如果答案很明显,对不起。
我正在尝试将 Starting 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
s 的委托并且我仍然实现教程中描述的和上面提到的方法。本质上 :
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
(任何地方的文档?)缺乏了解,这惨遭失败。
那么当用户完成编辑时,我需要做什么才能使键盘消失,“反应方式”?
谢谢 !!!