2016-02-21 34 views
1

如何將addTarget添加到NSObject類中的UIButton?或者那個班不工作?你可以在NSObject類中添加Target到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

有關更新的一些信息?我失去了很多時間在代碼中尋找錯誤。 :( –

+0

Dokun提供了一個可行的答案 –

回答

1

總之,沒有。

NSObject不從UIKit中的任何東西繼承。你的繼承應該是相反的。也許你可以使UIButtonNSObject類型的財產攜帶一些伴隨信息?

+0

只要你從你使用的任何類中分配委託,就可以使用tap識別器,這很奇怪。但是,我不知道會是什麼我想嘗試改變類到UIResponder無效 –

0

看那UIControl API

func addTarget(_ target: AnyObject?, action action: Selector, forControlEvents controlEvents: UIControlEvents)

但什麼是你想怎麼辦?通常你會在界面構建器中添加一個按鈕,並從像UIViewController這樣的控制器類中爲該按鈕添加一個引用(IBOutlet)。

編輯

啊,現在我明白了這個問題。不要在swift中使用Selector。 這應該工作。

helpButton.addTarget(self, action: "showOptions", forControlEvents: .TouchUpInside) 
+0

我試圖使用'addTarget'添加類'支持'內的類'showOptions'功能'helpButton'我可以就像在showController中放置'showOptions'一樣,我在其中添加按鈕,並將'addTarget'中的目標設置爲我傳入的viewController,但如果你足夠的話,那就太麻煩了。 –

+0

並設置所有按鈕屬性不是混亂的,爲什麼在代碼中,當IB可以爲你做時,ShowOptions就是NSViewController的用途:處理用戶事件和後臺和前端之間的數據(修改)。合作coa系統太多了。它有一個很好的設計和一種做事的方式。它可以使生活變得如此簡單。此外,您可以在IB中將自定義對象添加到viewController(側面板中的藍色框)。將你的viewController連接到該對象,然後將你的按鈕連接到該自定義控制器(就像使用nextResponder或FileOwner一樣)。 – user965972

+0

我很熟悉IB我只是不喜歡它。 –

相關問題