私は、親クラスCreateEventから継承するサブクラスCustomCellを持っています。サブクラスは、CreateEvent Viewコントローラにあるテーブルビューセルの個々のセルを記述します。ある特定のセルでは、CustomCellファイルにリンクされているテキストフィールドがありますが、ユーザーがテキストフィールドに入ると、そのテキストフィールドから値を取得するのに問題があります。私はまた、外のタッチとリターンキーを押すと、キーボードを却下する問題がありますが、私は主にテキストフィールドからテキストを取得に焦点を当てています。私はこれらの機能を通常の迅速なファイルで行うことに精通していますが、これはサブクラスなので、何をすべきかはわかりません。私が試したことは使用することです:テーブルビューのセル(テキストフィールド付き)
class CustomCell: UITableViewCell, UITextFieldDelegate {
@IBOutlet weak var entranceFeeTextField: UITextField!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
そして:
class CreateEventVC: UIViewController, UITableViewDelegate, UITableViewDataSource, CustomCellDelegate, UITextFieldDelegate {
override func viewDidLoad() {
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let currentCellDescriptor = getCellDescriptorForIndexPath(indexPath)
let cell = tableView.dequeueReusableCell(withIdentifier: currentCellDescriptor["cellIdentifier"] as! String, for: indexPath) as! CustomCell
cell.entranceFeeTextField.delegate = self
entranceFeeAmount = cell.entranceFeeTextField.text!
}
このコードが実行されないと、私は私ができるようにするために実行する必要が代表をテキストフィールドを正確にわからないんだけどテキストフィールドからText値を取得します。
これは非常に便利です。テキストフィールドに値をプルできるように編集を停止するように指示する必要があります。しかし、 "let textFromCell = textField.text!"という行では、CustomCellファイルからtextFieldを認識しません。 – Kevin
@Kevinデリゲートを適切に設定し、そのメソッドをあなたの 'CreateEventVC'に実装すれば、そうです。メソッドのパラメータには 'textField'と表示されますが、これはデリゲートによって渡されるtextFieldだけです。呼び出されると、あなたの 'entranceFeeTextField'になります。他に何かを意味するのでなければ? – Zolnoor
私はentranceFeeTextFieldを使用しました。それは私があまりにも適切に適合している代議員でなければなりません。それは 'cell.entranceFeeTextField.delegate = self'ではありませんか?デリゲートを満たすために他に何が必要ですか?おかげで – Kevin