Ios 如何在UITextFieldDelegate中执行不同的检查
我试图在UITextFieldDelegate的函数中进行一些检查,但我真的被卡住了。 在一个检查中,我想验证用户是否尝试在UITextfield的前面插入空格,并且不允许他这样做。 在另一个检查中,我想限制用户只为price UITextfield输入数字和标点符号 我在那里检查行吗 这是我的密码:Ios 如何在UITextFieldDelegate中执行不同的检查,ios,swift,uitextfield,Ios,Swift,Uitextfield,我试图在UITextFieldDelegate的函数中进行一些检查,但我真的被卡住了。 在一个检查中,我想验证用户是否尝试在UITextfield的前面插入空格,并且不允许他这样做。 在另一个检查中,我想限制用户只为price UITextfield输入数字和标点符号 我在那里检查行吗 这是我的密码: class AdminPanelViewController: UITableViewController { @IBOutlet weak var productNameTextfield:
class AdminPanelViewController: UITableViewController {
@IBOutlet weak var productNameTextfield: UITextField!
@IBOutlet weak var productPriceTextfield: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
productPriceTextfield.delegate = self
productNameTextfield.delegate = self
}
}
extension AdminPanelViewController: UITextFieldDelegate{
// Function which allow the user to enter only digits and punctuation for Price textfield
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
{
// This is for my Product Name and I want it here also
if (productNameTextfield!.text != nil){
if Int(range.location) == 0 && (string == " ") {
return false
}
else{
return true
}
}
else if (productPriceTextfield!.text != nil) {
// This is for my price and I need it here
let allowedCharacters = "0123456789."
return allowedCharacters.contains(string) || range.length == 1
}
return WHAT TO RETURN ???
}
}
谢谢你的时间 将键盘类型更改为numberPad以获取价格
productPriceTextfield.keyboardType = UIKeyboardType.numberPad
对于空间使用,请按以下方式使用修剪方法:
let str = productNameTextfield!.text
let trimmed = str.trimmingCharacters(in: .whitespacesAndNewlines)
我想你应该检查一下
textField
,看看你有没有合适的,如下所示:
if (textfield == productNameTextfield) {
// DO STUFF
}
return true
允许编辑任何其他文本字段如果我返回true
则我的价格文本字段将允许字母。我尝试了。将价格为productPriceTextfield的文本字段的键盘类型设置为decimalPad
。键盘类型=.decimalPad
返回的内容应始终为true
。是的,我将价格文本字段设置为productPriceTextfield.keyboardType=.numbers和标点符号。但是我在空间方面有问题。