2016-12-25 12 views
-1

私のviewControllerにはボタンとtextFieldがあります。 textFieldをクリックするとdidBeginEditイベントが発生し、ツールバーを呼び出すことができます。Swift - buttonClickイベントUIToolBarを呼び出すイベント

MyView

は、TextField上のユーザクリックが、それは以下のように思える:

textFieldClicked

そして私のスウィフトコードは以下の通りです:この時

Class ViewController: UIViewController { 



    @IBAction func btn(sender: AnyObject) { 


     // i want to call ToolBar here ... 


    } 


    @IBOutlet weak var textFieldOutlet: UITextField! 

    @IBAction func txtFieldBeginEdit(sender: AnyObject) { 

     raiseToolBar(textFieldOutlet) 

    } 





    var datePicker : UIDatePicker! 
     let ToolBar = UIToolbar() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 


    func raiseToolBar(textField : UITextField) 
    { 
     self.datePicker = UIDatePicker(frame: CGRectMake(0,0,UIScreen.mainScreen().bounds.height , UIScreen.mainScreen().bounds.height/3)) 

     self.datePicker.backgroundColor = UIColor.whiteColor() 
     self.datePicker.datePickerMode = .Date 
     textField.inputView = self.datePicker 


     ToolBar.barStyle = .Default 
     ToolBar.translucent = true 
     ToolBar.tintColor = UIColor(red : 92/255, green : 216/255 ,blue : 255/255, alpha: 1) 
     ToolBar.sizeToFit() 


     let done = UIBarButtonItem(title: "Tamam" , style: .Plain , target: self, action: #selector(ViewController.doneClick)) 
     let space = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target : nil , action: nil) 
     let cancel = UIBarButtonItem(title: "İptal" , style: .Plain , target: self, action: #selector(ViewController.cancelClick)) 
     ToolBar.setItems([done , space , cancel], animated: true) 
     ToolBar.userInteractionEnabled = true 
     textField.inputAccessoryView = ToolBar 

    } 

    func doneClick() { 


    } 
    func cancelClick() { 

    } 




} 

は、これが私の見解ですポイントは問題ありません。 Bu私はこのボタンをクリックして、このUIToolBarを呼び出したいと思っています(名前はbtnです)。 btnClickイベントで空のtextFieldをraiseToolBarメソッドに送信しようとしましたが、動作しません。ツールバーを呼び出すコードをbuttonClickで編集するにはどうすればいいですか?

********************************

textFieldOutlet.becomeFirstResponder() 
    raiseToolBar(textFieldOutlet) 

上記のように解決します。それは明確な方法ですか?あなたのBTNアクション内でこのようなあなたのテキストフィールドにファーストレスポンダを割り当てることができます

答えて

0

textFieldOutlet.isFirstResponder =真

+0

いいえ、それはプロパティに割り当てることができませんと言う:「自己」は不変です –

関連する問題