2017-01-29 1 views
0

ich M13Checkbox verwenden und es keine Ereignisse gesendet mein Ziel AktionBenutzerdefinierte UIControll Zielaktion wird nicht aufgerufen,

let checkbox: M13Checkbox = { 
    let checkbox = M13Checkbox() 
    checkbox.cornerRadius = 1 
    checkbox.boxType = .square 
    checkbox.stateChangeAnimation = .bounce(.fill) 
    checkbox.tintColor = UIColor(red: 66/255, green: 172/255, blue: 232/255, alpha: 1) 
    checkbox.checkmarkLineWidth = 4 
    checkbox.addTarget(self, action: #selector(checkMarkAction(_ :)), for: .valueChanged) 
    return checkbox 
}() 

func checkMarkAction(_ sender: M13Checkbox) { 
    print("M13CheckboxAction") 
} 

Antwort

0

Ich habe gerade diese Aussage bewegt

checkbox.addTarget(self, action: #selector(checkMarkAction(_ :)), for: .valueChanged) 

in awakeFromNib() Methode und es funktioniert gut

0

Ich glaube, Sie den Wähler so verweisen müssen nennen: #selector(checkMarkAction:) anzupassen, wie Es wird der Objective-C-Laufzeit angezeigt.

Das Zielaktionsmuster (und andere dynamische Features in Swift) wird oberhalb der Objective-C-Laufzeit implementiert. Daher sucht es nach dem Ziel-C-Namen Ihrer Swift-Methode.

+0

ich swift Compiler-Fehler, ich habe gerade versucht, ein neues Testprojekt zu starten und das gleiche tun, es funktioniert! Was kann ich tun, um ein Problem mit meinem Projekt zu beheben? – astrolka

+0

Was ist der Compilerfehler? Und auf welcher Linie? –

+0

https://snag.gy/ZLJWqC.jpg – astrolka

0

Haben Sie das versucht?

checkbox.addTarget(self, action: #selector(checkMarkAction), for: .valueChanged) 
Verwandte Themen