Computer >> Máy Tính >  >> Lập trình >> IOS

Làm thế nào để hạn chế UITextField chỉ nhận các số trong Swift?

Trong các ứng dụng iOS, đôi khi chúng ta cần hạn chế trường văn bản của mình chỉ lấy số làm đầu vào, điều này có thể được thực hiện theo một số cách, hãy xem một số cách trong số đó.

Phương pháp 1:Thay đổi Loại Trường Văn bản từ bảng phân cảnh.

  • Chọn trường văn bản mà bạn muốn giới hạn ở kiểu nhập số.
  • Chuyển đến trình kiểm tra thuộc tính của nó.
  • Chọn loại bàn phím và chọn bàn phím số từ đó.

Phương pháp 2:Lập trình giới hạn đầu vào thành số.

  • Chọn trường văn bản
  • Tạo đầu ra của nó trong bộ điều khiển chế độ xem.
  • Biến đổi bộ điều khiển chế độ xem thành UITextFieldDelegate
  • Đặt đại biểu của trường văn bản
  • Thêm chức năng sau
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
   if let x = string.rangeOfCharacter(from: NSCharacterSet.decimalDigits) {
      return true
   } else {
      return false
   }
}

Toàn bộ lớp mẫu của chúng ta trông giống như

import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
   @IBOutlet weak var tf: UITextField!
      override func viewDidLoad() {
         tf.delegate = self
         super.viewDidLoad()
      }
      func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
         if let x = string.rangeOfCharacter(from: NSCharacterSet.decimalDigits) {
            return true
         } else {
         return false
      }
   }
}

Điều này sẽ tạo ra một trường văn bản chỉ có thể lấy các chữ số làm đầu vào và không có ký tự nào khác.