texfiledにツールバーとそのアイテムをつけるところまでは出来ています。
その後それを使い回しやすいようにクラス化しようと思った所でつまづいてしまいました。
以下のようにクラスに切り出したのですが、ツールバーアイテムに設定したactionが反応しません。
どのようにコードを修正したら良いでしょうか?ご教授頂ければ幸いですm(__)m
swift
1class ToolbarCreate{ 2 var view: UIView! 3 var textField: UITextField! 4 5 init(view: UIView 6 , textField: UITextField){ 7 self.view = view 8 self.textField = textField 9 } 10 11 func setToolbar(){ 12 let toolBar = UIToolbar(frame: CGRectMake(0, self.view.frame.size.height/6, self.view.frame.size.width, 40.0)) 13 toolBar.layer.position = CGPoint(x: self.view.frame.size.width/2, y: self.view.frame.size.height-20.0) 14 let toolBarBtnCancel = UIBarButtonItem(title: "キャンセル", style: .Plain, target: self, action: "tappedToolBarBtnCancel:") 15 let flexibleItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil) //完了ボタンを右につけるためのスペーサー 16 let toolBarBtnDone = UIBarButtonItem(title: "完了", style: .Plain, target: self, action: "tappedToolBarBtnDone:") 17 toolBar.items = [toolBarBtnCancel, flexibleItem, toolBarBtnDone] 18 textField.inputAccessoryView = toolBar 19 } 20 21 //キャンセルボタンを押した場合 22 func tappedToolBarBtnCancel(sender: UIBarButtonItem) { 23 textField.resignFirstResponder() 24 } 25 26 //完了ボタンを押した場合 27 func tappedToolBarBtnDone(sender: UIBarButtonItem) { 28 textField.resignFirstResponder() 29 } 30}
【追記】以下呼び出しです。
swift
1let toolbarCreate = ToolbarCreate(view: self.view, textField: textFieldBirth) 2 toolbarCreate.setToolbar()
回答2件
あなたの回答
tips
プレビュー