2017-08-02 61 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