gpt4 book ai didi

ios - 当所有文本字段都填入uitableviewcell(SWIFT)时如何启用按钮

转载 作者:行者123 更新时间:2023-11-28 11:43:31 24 4
gpt4 key购买 nike

我想在 tableviewcell 中填写文本字段时启用 viewcontroller 中的按钮。

我不知道如何解决这个问题。

对不起。我的英语还不成熟。

  1. 按钮(viewController)isEnable = false
  2. 填充文本字段(在 tableviewcell 内)
  3. 按钮( View Controller )isEnable = true

enter image description here

1. View Controller

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate {

@IBOutlet var tableView: UITableView!
@IBOutlet var viewLabel: UILabel!
@IBOutlet var clickBtn: UIButton!

var cell: CustomTableViewCell!

override func viewDidLoad() {
super.viewDidLoad()

self.clickBtn.isEnabled = false
cell.textFieldCell.addTarget(self, action: #selector(editingChanged), for: .editingChanged)
cell.textFieldCell2.addTarget(self, action: #selector(editingChanged), for: .editingChanged)
}

@objc func editingChanged(sender: UITextField) {

sender.text = sender.text?.trimmingCharacters(in: .whitespaces)

guard
let text1 = cell.textFieldCell.text, !text1.isEmpty,
let text2 = cell.textFieldCell2.text, !text2.isEmpty
else
{
self.clickBtn.isEnabled = false
return
}
clickBtn.isEnabled = true
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
cell = tableView.dequeueReusableCell(withIdentifier: "myCell", for: indexPath) as! CustomTableViewCell
return cell
}
}

2。自定义表格 View

import UIKit

class CustomTableViewCell: UITableViewCell, UITextFieldDelegate {

@IBOutlet var myLabel: UILabel!
@IBOutlet var textFieldCell: UITextField!
@IBOutlet var textFieldCell2: UITextField!
}

最佳答案

既然 TableView 只包含一个单元格,为什么还要使用 TableView 呢?
如果您真的需要使用表格 View ,为什么不使用 static 单元格呢?


一个简单的解决方案是将目标/操作代码从 viewDidLoad 移动到单元格的 didSet 属性观察器中

var cell: CustomTableViewCell! {
didSet {
cell.textFieldCell.addTarget(self, action: #selector(editingChanged), for: .editingChanged)
cell.textFieldCell2.addTarget(self, action: #selector(editingChanged), for: .editingChanged)
}
}

override func viewDidLoad() {
super.viewDidLoad()

self.clickBtn.isEnabled = false
}

关于ios - 当所有文本字段都填入uitableviewcell(SWIFT)时如何启用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53005020/

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