在文本字段中输入的内容后面加上:00

问题描述 投票:0回答:1

下面的我的代码限制用户只能在文本字段中输入2个数字。我要做的就是将“:00”附加到输入到文本字段的任何内容中。因此,如果用户输入30。文本字段应为30:00。下面列出了所有代码。

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

   @IBOutlet weak var txtMobileNumber: UITextField!

   let MAX_LENGTH_PHONENUMBER = 2
   let ACCEPTABLE_NUMBERS     = "0123456789"

   func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {                   
      let newLength: Int = textField.text!.count + string.count - range.length
      let numberOnly = NSCharacterSet.init(charactersIn: ACCEPTABLE_NUMBERS).inverted
      let strValid = string.rangeOfCharacter(from: numberOnly) == nil
      return (strValid && (newLength <= MAX_LENGTH_PHONENUMBER))
   }

   override func viewDidLoad() {
       super.viewDidLoad()
       // Do any additional setup after loading the view, typically from a nib.
       txtMobileNumber.delegate = self
   }
}
swift int append uitextfielddelegate nscharacterset
1个回答
0
投票

您需要

    aTextField.addTarget(self, action: #selector(self.textFieldDidChange), for: UIControlEvents.editingChanged)        
}

@objc func textFieldDidChange(_ textField: UITextField) { 
   if  textField.text!.count == 2 {
      textField.text = textField.text! + ":00"
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.