我在UITableViewCell上有两个UITextField,它们的IBOutlets连接在名为" CustomCell.swift"的自定义UITableViewCell类中。 Enter按钮位于ViewController的UIView上,其IBAction位于UIViewController类中,名为" ViewController"。
单击Enter按钮我想查看两个textField是否为空。我该怎么做?请帮忙
答案 0 :(得分:0)
在您的班级中创建一个Bool变量,您可以在其中执行按钮操作
valgrind
然后在你的表视图中dataSource方法cellForRowAtIndexPath add
var isTextFieldTextEmpty: Bool!
然后在你的(回车)按钮的IBAction中添加
if myCell.myTextField.text?.isEmpty == true {
self.isTextFieldTextEmpty = true
} else {
self.isTextFieldTextEmpty = false
}
如果表视图的所有单元格中的所有文本字段都有文本,则会打印为false,否则如果所有文本字段中只有一个文本字段没有文本,则会打印为true
答案 1 :(得分:0)
这是一个简单的解决方案。它适用于任意数量的单元格。
您需要做的是遍历单元格并确定特定单元格所持有的textField是否为空。现在的问题是你将如何遍历单元格,是否有任何委托?答案是否定。
您必须手动构造indexPaths以从表中获取单元格。
这是一个简单的步骤。你的设置是完全正确的。你应该在ViewController中有一个tableview。所以,tableview的IBOutlet应该在那里。我将我的TableView命名为“myTableView”。 textField的Outlet应该在TableViewCell里面,这也是正确的。最后,Enter按钮的操作方法应该在视图控制器中。
确保正确连接所有插座。
以下是自定义TableViewCell示例 -
import UIKit
class CustomTableViewCell: UITableViewCell {
@IBOutlet weak var internalTextField : UITextField!
override func awakeFromNib() {
super.awakeFromNib()
}
}
现在只需转到ViewController.swift -
import UIKit
class ViewController: UIViewController, UITableViewDataSource {
@IBOutlet weak var myTableView : UITableView!
var numberOfCells = 2 //you can update it to be any number
override func viewDidLoad() {
super.viewDidLoad()
self.myTableView.dataSource! = self //assign the delegate
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return numberOfCells
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell : CustomTableViewCell = tableView.dequeueReusableCellWithIdentifier("customCell", forIndexPath: indexPath) as! CustomTableViewCell
return cell;
}
@IBAction func pressedEnter(){
var row = 0
while row < numberOfCells { //iterate through the tableview's cells
let indexPath : NSIndexPath = NSIndexPath(forRow: row, inSection: 0) //Create the indexpath to get the cell
let cell : CustomTableViewCell = self.myTableView.cellForRowAtIndexPath(indexPath) as! CustomTableViewCell
if cell.internalTextField.text!.isEmpty{
print("TextField is Cell \(row) is Empty")
}
else{
print("TextField is Cell \(row) is NOT Empty")
}
row += 1
}
}
}
有评论解释了一切。希望这会有所帮助。