2016-09-13 3 views
0

私はテーブルビューを持っています。その中で私はUITextFieldを動的に作成しています。 しかし、私はそれでイベントを発生させることはできません。テーブルビューにあるので、UITextFieldにデリゲートを割り当てることができません。

func tableView(_ tableView: UITableView, cellForRowAt indexPath:IndexPath) -> UITableViewCell { 
     let cell = self.tableView.dequeueReusableCell(withIdentifier: "cell",for: indexPath) as! DynamicTableCell 

     var dynamicTxtField1: UITextField = UITextField() 
     dynamicTxtField1.backgroundColor = UIColor.white 
     dynamicTxtField1.rightViewMode = .always 
     dynamicTxtField1.layer.cornerRadius = 5; 
     dynamicTxtField1.clipsToBounds = true 
     dynamicTxtField1.borderStyle = .roundedRect 
     // Here i am not able to assign the 
     //Error in this line // dynamicTxtField1.delegate = self 

     // Here object "self" is referring to the view. Because of this i am not able to fire any events of the UITextField 
     cell.addSubview(dynamicTxtField1) 
} 

私はそれからいくつかの値を選択するビューを表示するためにイベントを発生できるように、このシナリオでのUITextFieldにデリゲートを割り当てる方法を提案してください。

エラーは次のとおりです。

ライン上

を "UITextFieldDelegateを入力しVIEWNAME(クラス名)の値を割り当てることができません":

dynamicTxtField1.delegate = self 
+2

のですか?あなたの 'self'は' UITextFieldDelegate'に従っていますか? – Grimxn

+0

エラーに関する質問を投稿するときは、完全で正確なエラーメッセージを質問に含める必要があります。 – rmaddy

+0

エラーは「ViewName(クラス名)の値をUITextFieldDelegateに割り当てることができません」です。 自己が問題となっているUITextFieldDelegateを参照していません。私は今どうすればいい? – Dev

答えて

0

enter image description hereあなたのを作成する必要がありますあなたのセルのサブクラスのtextFieldは、cellForRowAtIndexPathの属性を変更します。あなたのクラスはUITextFieldDelegateを実装していますか?

EDIT:この

 textField.addTarget(self, action: #selector(ViewController.textfieldDidchange(_:)), forControlEvents: .ValueChanged) 
     cell.contentView.addSubview(textField) 

を試してみて、ここにあなたが取得しているエラーは何の方法

func textfieldDidchange(textField: UITextField) { 
//your code 

}

+0

UiTextFieldDelegateの代わりにUiTextViewDelegateを追加したのは間違いです。しかし、私はそれを修正しました。それでも事態は解雇されません。 dynamicTxtField1.addTarget(self、action: "ButtonPressed"、for:UIControlEvents.touchDown) これはUITextField ?????で機能しますか? – Dev

+0

あなたが手紙を書くたびにメソッドを呼び出すには、あなた自身のメソッドが必要であり、.ValueChangedを使用します。 UITextFieldDelegateはそれを処理しません。 –

+0

どうすればいいですか? 私はタップでメソッドをしたいです。ユーザがtextFieldをタップするとすぐにテーブルビューを表示するために別のビューに移動したいので、 – Dev

関連する問題