为什么 textFieldShouldReturn 不自动退出并且 returns 为真?
Why doesn't textFieldShouldReturn automatically resigns and returns true?
我是 iOS 开发新手,正在阅读 Apple 的 swift 教程。
在我看来,始终需要下面的代码,以便当用户在文本字段中点击 return 时,它会辞去第一响应者。
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
我理解 swift 为程序员提供了控制这种行为的灵活性,但是在真实应用程序的哪些场景中我不需要这两行?在我看来,我总是需要它们,所以为什么 swift 不自动执行呢?
Cocoa假设点击Return应该自动关闭键盘是非常错误的.这完全取决于您。用户的期望可能是这将关闭键盘。你也可能不想让键盘永远挂在身边。嗯,resignFirstResponder
关闭键盘。不过,假设文本有问题。当用户点击 Return 时,您可能会检查文本并且 而不是 关闭键盘。您可能会发出警报,警告存在问题。您不希望被框架的某些自动行为覆盖!
顺便说一句,除了实现此方法外,还有其他方法可以使点击 Return 关闭键盘。在使用这些其他方式的应用程序中,此方法可能根本不会出现。
这是默认值。
但是,如果您更喜欢 "automatic enable return",您现在可以在 Swift 2.0.
您仍然需要使您的 class 符合 UITextFieldDelegate,并且您仍然需要在 Interface Builder 中配置委托。
进行协议扩展:
extension UITextFieldDelegate {
func textFieldShouldReturn(textField: UITextField) -> Bool {
NSLog("default behavior")
textField.resignFirstResponder()
return true
}
}
不,这是您所有应用程序的默认行为...
您仍然可以覆盖 class 中的方法。
我是 iOS 开发新手,正在阅读 Apple 的 swift 教程。 在我看来,始终需要下面的代码,以便当用户在文本字段中点击 return 时,它会辞去第一响应者。
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
我理解 swift 为程序员提供了控制这种行为的灵活性,但是在真实应用程序的哪些场景中我不需要这两行?在我看来,我总是需要它们,所以为什么 swift 不自动执行呢?
Cocoa假设点击Return应该自动关闭键盘是非常错误的.这完全取决于您。用户的期望可能是这将关闭键盘。你也可能不想让键盘永远挂在身边。嗯,resignFirstResponder
关闭键盘。不过,假设文本有问题。当用户点击 Return 时,您可能会检查文本并且 而不是 关闭键盘。您可能会发出警报,警告存在问题。您不希望被框架的某些自动行为覆盖!
顺便说一句,除了实现此方法外,还有其他方法可以使点击 Return 关闭键盘。在使用这些其他方式的应用程序中,此方法可能根本不会出现。
这是默认值。
但是,如果您更喜欢 "automatic enable return",您现在可以在 Swift 2.0.
您仍然需要使您的 class 符合 UITextFieldDelegate,并且您仍然需要在 Interface Builder 中配置委托。
进行协议扩展:
extension UITextFieldDelegate {
func textFieldShouldReturn(textField: UITextField) -> Bool {
NSLog("default behavior")
textField.resignFirstResponder()
return true
}
}
不,这是您所有应用程序的默认行为...
您仍然可以覆盖 class 中的方法。