struct TwoTFData {
var cStr: String = ""
var dStr: String = ""
}
class AuthTVC: UITableViewCell {
let tfC = UITextField()
let tfD = UITextField()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
commonInit()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
commonInit()
}
func commonInit() {
[tfC, tfD].forEach { v in
v.borderStyle = .roundedRect
v.backgroundColor = .yellow
v.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(v)
}
let g = contentView.layoutMarginsGuide
NSLayoutConstraint.activate([
tfC.topAnchor.constraint(equalTo: g.topAnchor, constant: 0.0),
tfC.leadingAnchor.constraint(equalTo: g.leadingAnchor, constant: 0.0),
tfC.bottomAnchor.constraint(equalTo: g.bottomAnchor, constant: 0.0),
tfD.topAnchor.constraint(equalTo: g.topAnchor, constant: 0.0),
tfD.trailingAnchor.constraint(equalTo: g.trailingAnchor, constant: 0.0),
tfD.bottomAnchor.constraint(equalTo: g.bottomAnchor, constant: 0.0),
tfD.leadingAnchor.constraint(equalTo: tfC.trailingAnchor, constant: 20.0),
tfD.widthAnchor.constraint(equalTo: tfC.widthAnchor),
])
}
}
class TFCrashVC: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate {
let txtfldLoc = UITextField()
let txtfldOp = UITextField()
let authTableView = UITableView()
var myData: [TwoTFData] = []
override func viewDidLoad() {
super.viewDidLoad()
[txtfldLoc, txtfldOp].forEach { v in
v.borderStyle = .roundedRect
v.delegate = self
v.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(v)
}
txtfldLoc.placeholder = "Location"
txtfldOp.placeholder = "Operator"
txtfldLoc.backgroundColor = .cyan
txtfldOp.backgroundColor = .green
authTableView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(authTableView)
let g = view.safeAreaLayoutGuide
NSLayoutConstraint.activate([
txtfldLoc.topAnchor.constraint(equalTo: g.topAnchor, constant: 20.0),
txtfldLoc.leadingAnchor.constraint(equalTo: g.leadingAnchor, constant: 20.0),
txtfldOp.topAnchor.constraint(equalTo: g.topAnchor, constant: 20.0),
txtfldOp.trailingAnchor.constraint(equalTo: g.trailingAnchor, constant: -20.0),
txtfldOp.leadingAnchor.constraint(equalTo: txtfldLoc.trailingAnchor, constant: 20.0),
txtfldOp.widthAnchor.constraint(equalTo: txtfldLoc.widthAnchor),
authTableView.topAnchor.constraint(equalTo: txtfldLoc.bottomAnchor, constant: 20.0),
authTableView.leadingAnchor.constraint(equalTo: g.leadingAnchor, constant: 20.0),
authTableView.trailingAnchor.constraint(equalTo: g.trailingAnchor, constant: -20.0),
authTableView.bottomAnchor.constraint(equalTo: g.bottomAnchor, constant: -20.0),
])
authTableView.register(AuthTVC.self, forCellReuseIdentifier: "c")
authTableView.dataSource = self
authTableView.delegate = self
// start with one data element
let d: TwoTFData = .init(cStr: "Location 0", dStr: "Operator 0")
myData.append(d)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myData.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let c = tableView.dequeueReusableCell(withIdentifier: "c", for: indexPath) as! AuthTVC
c.tfC.text = myData[indexPath.row].cStr
c.tfD.text = myData[indexPath.row].dStr
return c
}
func locationButtonTapped(_ tf: UITextField) {
let d: TwoTFData = .init(cStr: "Location \(myData.count)", dStr: "")
myData.append(d)
authTableView.reloadData()
}
func operatorButtonTapped(_ tf: UITextField) {
let d: TwoTFData = .init(cStr: "", dStr: "Operator \(myData.count)")
myData.append(d)
authTableView.reloadData()
}
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
// textField.layoutIfNeeded()
// textField.spellCheckingType = .no
// textField.autocorrectionType = .no
if textField == txtfldLoc {
self.locationButtonTapped(textField)
return false
}
else if textField == txtfldOp {
self.operatorButtonTapped(textField)
return false
}
else if textField.superview?.isDescendant(of: self.authTableView) == true
{
// if textField.accessibilityLabel != nil{
//
// let index = Int(textField.accessibilityLabel!)!
//
// let cell = self.authTableView.cellForRow(at: IndexPath(row: index, section: 0)) as! AuthTVC
// self.selectedRow = IndexPath(row: index, section: 0)
// if authenticatorObjectList.count > index {
// let authenticator = self.authenticatorObjectList[index]
//
// cell.authenticatorTextField.defaultPlaceholderColor = UIColor(hex: Color.shared.blue)!
// cell.authenticatorTextField.placeholderColor = UIColor(hex: Color.shared.blue)!
// cell.authenticatorTextField.textColor = .black
//
// if authenticator.dataType == "List" {
// self.authenticatorButtonTapped(sender:textField)
// return false
// }
// else {
// if authenticator.regex.first == "^" {
//
// if let txtfld = self.arrOfViews.first(where:{$0.accessibilityLabel == "\(index)"}) as? MFTextField
//
// {
//
// if let ind = self.arrOfViews.firstIndex(of: txtfld)
// {
// cell.authenticatorTextField.text = txtfld.text
// }
// }
// DispatchQueue.main.async {
// self.authTableView.layoutIfNeeded()
// }
// return true
// }
// }
// }
// }
//
// } else if textField == amountTextField {
}
return true
}
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎