如何将toTarget添加到NSObject类中的UIButton?或者那个班级不起作用?
class Support: NSObject {
func helpButton(viewController: ProfileVC) {
let helpButton = viewController.helpButton
helpButton.frame.size = CGSizeMake(35.0, 35.0)
helpButton.layer.cornerRadius = helpButton.frame.height/2
helpButton.layer.borderWidth = 0.5
helpButton.layer.borderColor = lightColoredFont.CGColor
helpButton.setTitle("?", forState: .Normal)
helpButton.setTitleColor(lightColoredFont, forState: .Normal)
helpButton.titleLabel?.font = fontSmaller
helpButton.addTarget(self, action: Selector("showOptions"), forControlEvents: .TouchUpInside)
helpButton.center.y = viewController.logoutButton.center.y
helpButton.frame.origin.x = (viewController.view.bounds.width - viewController.logoutButton.frame.maxX)
viewController.view.addSubview(helpButton)
}
func showOptions() {
print("showing")
}
}
打印未显示。即使我将实例化的支持类提供给按钮的目标,它也无法工作。这样做的正确方法是什么?
答案 0 :(得分:1)
简而言之,没有。
NSObject
不会继承UIKit中的任何内容。你的继承应该是另一种方式。也许您可以使UIButton
具有NSObject
类型的属性来携带一些附带信息?
答案 1 :(得分:0)
查看UIControl API
func addTarget(_ target: AnyObject?,
action action: Selector,
forControlEvents controlEvents: UIControlEvents)
但是你想做什么?通常,您可以在界面构建器中添加一个按钮,并从某个控制器类(如UIViewController)向该按钮添加一个引用(IBOutlet)。
修改强>
啊,现在我看到了问题。不要在swift中使用Selector。 这应该有用。helpButton.addTarget(self, action: "showOptions", forControlEvents: .TouchUpInside)