gpt4 book ai didi

swift - 如何在 Swift 中通过 ImageView 创建自定义文本字段

转载 作者:行者123 更新时间:2023-11-30 11:39:43 25 4
gpt4 key购买 nike

我试图将键盘输入显示到框中(如图所示),并且仍然能够将输入作为一个读取,而不是 4 个不同的输入。这些框是 ImageView ,我想将它们转换为一个文本字段。

Example

最佳答案

你可以这样做:

1)创建UIView或UITableViewCell类:

class ConfirmTableViewCell: UITableViewCell {

@IBOutlet weak var symbolsTextField: UITextField!
@IBOutlet weak var firstLabel: UILabel!
@IBOutlet weak var secondLabel: UILabel!
@IBOutlet weak var thirdLabel: UILabel!
@IBOutlet weak var fourthLabel: UILabel!

var code: String = ""

override func awakeFromNib() {
super.awakeFromNib()

symbolsTextField.delegate = self
symbolsTextField.becomeFirstResponder()

resetContent()
}

func resetContent() {
firstLabel.text = nil
secondLabel.text = nil
thirdLabel.text = nil
fourthLabel.text = nil
}
}

2)添加xib或者你可以在 Storyboard中完成。将 UITextField 添加到 UIView 并使用清晰的文本颜色。 enter image description here

3)添加扩展:

extension ConfirmTableViewCell: UITextFieldDelegate {

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

if range.location > 3 {
textField.text?.removeLast()
}

setupLabels(character: string, range: range)

return true
}

func setupLabels(character: String, range: NSRange) {
if range.location > 3 {
self.code.removeLast()
}

if range.length == 0 {
self.code += character
} else {
self.code.removeLast()
}

var codeString: String = self.code

if let symbol = codeString.first {
firstLabel.text = String(symbol)
codeString.removeFirst()
} else {
firstLabel.text = nil
}

if let symbol = codeString.first {
secondLabel.text = String(symbol)
codeString.removeFirst()
} else {
secondLabel.text = nil
}

if let symbol = codeString.first {
thirdLabel.text = String(symbol)
codeString.removeFirst()
} else {
thirdLabel.text = nil
}

if let symbol = codeString.first {
fourthLabel.text = String(symbol)
} else {
fourthLabel.text = nil
}
}

}

关于swift - 如何在 Swift 中通过 ImageView 创建自定义文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49380632/

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