私はそれぞれにテキストフィールドを持つカスタムセルを持っています。私はそれらのテキストを変更するとき、私は現在の行を取得し、私の配列を正しく更新したいと思います。これまでのところ、私はdidFinishEditingをまったく実行させることさえできなかったと思います。私はそこに簡単な印刷コマンドを入れました。そして、私がtextFieldsを変更したとき、何も印刷されませんでした。私は、関数を置く場所、セルのクラス、またはメインクラスのどこにいるのか分かりません。メインクラスでは実行されず、セルクラスではインデックスパスを与えることはできません。ここで didFinishEditing(textField)をカスタムセルで使用する方法は?
は、私が試したものです。また、func textFieldDidEndEditing(_ itemTitle: UITextField) {
let pointInTable = itemTitle.convert(itemTitle.bounds.origin, to: self.tableView)
let textFieldIndexPath = self.tableView.indexPathForRow(at: pointInTable)
items.insert(itemTitle.text!, at: textFieldIndexPath)
//tableView.reloadData()(This isn't really that important)
}
そして、この:
class ItemTableViewCell: UITableViewCell {
@IBOutlet weak var itemTitle: UITextField!
@IBOutlet weak var date: UILabel!
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
itemTitle.resignFirstResponder()
}//(Not relevant)
}
:func textFieldDidEndEditing(_ itemTitle: UITextField) {
items.insert(itemTitle.text!, at: indexPath.row)
//tableView.reloadData()(This isn't really that important)
}
はここに私のセルクラスです私はちょうどので、私はカスタムセルを拾っ
:
class PreviewToDoViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate {
そして、私のビューがレイアウトされているかのスクリーンショット:私は次のようました私のメインクラスで
学び始めた。私は前にtableviewsだけでなく、.defaultと.subtitleセルを使用しました。
ありがとうございました!
私はあなたが追加することを忘れ考えるtextfield.delegate =「完了」キーボードが押されたら、自己 – Ram
ザ・が終了編集が呼び出されなかった(と:デリゲートの機能では、(セル用)indexPathでindexPathにアクセスすることができますデリゲートも設定する必要があります)。値の変更のためにターゲットを追加する必要があります。インターフェースビルダーからドラッグしてアクションを選択することができます。 (またはそれが "変更された編集"されている可能性があります) –