swift - textFieldDidEndEditing - 文本字段有限值输入

标签 swift uitextfield

enter image description here

我正在尝试创建一个计算器,该计算器可以在 UITextField 值发生更改时计算结果。 没有提交按钮我认为textFieldDidEndEditing。除了用户输入值的 UITextField 之外,一切正常。表单上的其他字段是 UIPickerView。它将自由格式 UITextField 中的输入限制为 1 个字符。

self.mortgageAmount.delegate = self

func textFieldDidEndEditing(_ textField: UITextField) {
    let selectedMortgageAmount = Double((mortgageAmount.text)!)
}

最佳答案

如果您没有提交按钮并希望在字段中输入时进行动态计算,则需要使用 textField(_:shouldChangeCharactersIn:replacementString:),而不是 textFieldDidEndEditing(_ :).

每次文本字段中的任何内容即将更改时,前者都会触发。后者仅在文本字段完成编辑时触发,无论是通过提交按钮还是其他一些操作,例如滚动配置为在滚动时结束编辑的父 ScrollView 。

参见https://developer.apple.com/documentation/uikit/uitextfielddelegate/1619599-textfield

关于swift - textFieldDidEndEditing - 文本字段有限值输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54777530/

相关文章:

arrays - 如何快速从数组中选择一个随机十(字符串)

swift - 告诉 UITableView 哪些数据应该在 Swift 中显示的最佳方式

ios - 当键盘出现时,如何将最后一个文本字段的 View 向上移动?

xamarin.ios - 如何在 Monotouch 中实现 ShouldChangeCharacters?

iphone - 以编程方式创建的 UITextField 的占位符文本未居中

ios - 自定义 TextField Swift

ios - 带有@Binding可选属性的SwiftUI View的初始化似乎模棱两可

objective-c - iphone MKMapView 34000 注释

ios - 如何将导航栏大标题转换为多行,居中对齐

ios - 在文本字段中自动添加连字符但无法编辑文本字段(电话号码屏蔽)