2016-12-25 41 views
-1

在我的viewController中有一個按鈕和textField。當使用點擊textField它觸發didBeginEdit事件,我可以調用一個工具欄。 這是我的看法:Swift - 通過buttonClick調用UIToolBar事件

MyView

當文本字段用戶點擊看起來象下面這樣:

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調用ToolBar

****************編輯*****************

textFieldOutlet.becomeFirstResponder() 
    raiseToolBar(textFieldOutlet) 

我像上面解決。這是一個明確的方式嗎?

回答

0

你可以第一個響應分配給您的文本字段,這樣您的BTN行動中:

textFieldOutlet.isFirstResponder =真

+0

沒有,它說無法指定屬性:「自我」是不可改變的 –

相關問題