你能在NSObject类中将目标添加到UIButton吗?

时间:2016-02-21 19:07:32

标签: ios swift

如何将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")

    }

}

打印未显示。即使我将实例化的支持类提供给按钮的目标,它也无法工作。这样做的正确方法是什么?

2 个答案:

答案 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)