Swift 3 では、ユーザーが UITextField の外側に触れたかどうかを検出し、特定の UITextField が送信者であることを確認して、テキストを保存する必要があります。私はSwift 2で例を見つけた通知センターでこれをやろうとしていますが、Swift 3の正しい構文を実装するのに苦労しています.
let notificationName = Notification.Name("UITextFieldTextDidChange")
NotificationCenter.default.addObserver(self, selector: #selector(self.textFieldDidChange), name: notificationName, object: nil)
NotificationCenter.default.post(name: notificationName, object: nil)
func textFieldDidChange(sender: AnyObject) {
if let notification = sender as? NSNotification,
let textFieldChanged = notification.object as? UITextField
where textFieldChanged == self.myTextField {
storedText = myTextField.text!
}
}
アップデート
私はこれを行うための少し異なる方法を見つけました。
myTextField.addTarget(self, action: #selector(didChangeText(textField:)), for: .editingChanged)
func didChangeText(textField: UITextField) {
if let textInField = myTextField.text {
myTextField.text = textInField
storedText = myTextField.text!
}
}