2017-08-02 68 views
0

這裏是我的代碼上UIToolBar的UIButton的似乎不工作

override func viewDidLoad() { 
    super.viewDidLoad() 

    let button1 = UIButton(frame: CGRect(x: 50, y: 50, width: 30, height: 30)) 
    button1.setTitle("hi", for: .normal) 
    button1.setTitleColor(.blue, for: .normal) 
    button1.setTitleColor(.black, for: .highlighted) 
    button1.addTarget(self, action: #selector(self.barItem2Clicked(sender:)), for: .touchUpInside) 
    button1.backgroundColor=UIColor.red 

    let barButton1 = UIBarButtonItem(customView: button1) 
    toolBar1.items?.append(barButton1) 
} 

方法barItem2Clicked

func barItem2Clicked(sender :Any?) { 
    NSLog("hello") 
} 

我想用UIButton的加入UIToolBar,但button1的作用不能被稱爲,並且突出顯示的效果也不顯示。

我點擊了我剛剛添加的button1,但方法barItem2Clicked從未調用過。

我錯過了什麼嗎?

感謝

+0

將目標添加到酒吧按鈕項目時會發生什麼?酒吧按鈕項目的框架是什麼? – powerj1984

+0

你沒有任何關於你的UIButton的參考。看到這裏:https://stackoverflow.com/a/45385689/6167296 – MH175

+1

謝謝你們,我認爲我的代碼按鈕的框架不是這個問題的主要原因,我改變了框架'CGRect(x:50 ,y:50,width:30,height:30)'到'CGRect(x:0,y:0,width:50,height:50)',toolBar可以自動修復它。 – Loyoan

回答

0

請確保該toolBar1連接 我只是想與你的代碼,它似乎是工作。

enter image description here

+0

調用了「barItem2Clicked」方法嗎?我編譯了一個新項目來測試代碼,而且該方法仍然無法調用。 – Loyoan

+0

嗨@Loyoan,該方法被調用,它在控制檯中記錄你好。我檢查了它,可能是如果你想要你可以給我你的代碼,我可以看到有什麼不對。你可以把它推到混帳,以便我可以檢查。 –

+0

感謝您的回答,我建立了幾個項目來測試,我認爲這是Xcode的一個bug。我打開第一個項目並添加一些約束到工具欄,然後刪除它們,然後它的工作,我不知道爲什麼,但它終於工作。感謝您驗證我的代碼。 – Loyoan