gpt4 book ai didi

swift - 创建 UITextFieldDelegate 以限制 Swift 中的字符数

转载 作者:行者123 更新时间:2023-11-28 15:10:40 25 4
gpt4 key购买 nike

我是代理的新手,我正在尝试使用 UITextFieldDelegate 进行试验。我的目标是将此文本字段中的字符数限制为五个字符,就好像我正在创建一个邮政编码文本字段一样。

我正在使用带有文本字段的现成 View Controller ,并创建了一个名为 ZipCodeDelegate.swift 的委托(delegate)文件。我修改了 Storyboard 中的文本字段,以在用户点击该字段时显示数字键盘。这是我的 View Controller :

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

// MARK: Outlets

@IBOutlet weak var zipTextField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

这是我的委托(delegate)文件:

import Foundation
import UIKit

class ZipCodeDelegate: NSObject, UITextFieldDelegate {


}

我不知道下一步该做什么。我不确定如何限制文本字段的字符数,以及如何告诉 View Controller 这个委托(delegate)文件存在并且它应该控制所述文本字段。

最佳答案

将此 UITextField 委托(delegate)用于 Zipcode 和 Int 限制字符数

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

if string.rangeOfCharacter(from: NSCharacterSet.decimalDigits.inverted) == nil{
let len = (textField.text?.characters.count)! + string.characters.count
if len <= 5 {
return true
}
}
return false
}

UITextField 委托(delegate)方法检查最大字符数限制。

public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
{
var oldlength : Int = 0
if textField.text != nil
{
oldlength = (textField.text?.count)!
}

let replaceMentLength : Int = string.count
let rangeLength : Int = range.length

let newLength : Int = oldlength - rangeLength + replaceMentLength

return newLength <= charaterLimit || false
}

关于swift - 创建 UITextFieldDelegate 以限制 Swift 中的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47714232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com