Wie der aktuelle Titel einer Schaltfläche in Swift 3.0 , ios mit Absender.titleForState(.Normal)!
Habe ich versucht, die title
einer button
im swift wie unten.
@IBAction func buttonAction(_ sender: Any) {
let buttonTitle = sender.titleForState(.Normal)!
}
aber es hat nicht funktioniert,auch es gibt keine hint
wenn wir drücken .
nach dem Absender.
also, was ist der richtige Weg, dies zu tun, in swift 3.0
Sonst wenn wir ein IBOutlet
und dann verwenden wir Ihre currentTitle
, funktioniert es wie folgt Aussehen. Warum können wir nicht bekommen es mit sender.
für oben
@IBOutlet var thebutton: UIButton!
@IBAction func buttonAction(_ sender: Any) {
let buttonTitle = thebutton.currentTitle!
print(buttonTitle)
}
Ändern Absender
UIButton
.InformationsquelleAutor Chanaka Caldera | 2016-10-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil parameter sender ist in Typ
Any
stattUIButton
. Ändern Sie die Signatur der Methode an:und Sie sollten gut zu gehen.
let buttonTitle = sender.title(for: .normal)!
. vielen Dank für die Hilfe.nur um zu wissen, Frage ich, warum sollten wir überprüfen, ob die Schaltfläche Titel einen Wert hat(null), wir wissen, dass es einen Wert hat, so können wir einfach
unwrap
statt Kontrollenil
.Ja, wenn Sie sicher sind, es ist nicht nil ist, dann verwenden Sie
!
stattif let
- Klausel. Ich persönlich meide mit!
so viel wie möglich, wie es macht den code anfällig für unerwartete Ausnahmen wie die, verursacht durch unwrapping eine null optional.danke im Voraus 🙂
Dies funktioniert aber wenn in der Zwischenzeit haben Sie programmatisch den Titel geändert auf den Knopf, Sie bekommen die original-Titel und nicht den aktuellen Titel. Zum wiederherstellen der aktuellen Titel-Sie tun sollten : lassen Sie buttonActualTitle = "myButton".titleLabel?.text
InformationsquelleAutor ozgur
Den Titel der Schaltfläche unabhängig von seinem aktuellen Zustand in swift 3.0 versuchen Sie es mit dieser:
Dieser will wieder den Titel für den Staat, basierend auf den Zustand, dass die Schaltfläche ist aktuell in.
InformationsquelleAutor ZaneMan
Da Swift 3.0, wechselte er von
sender.titleForState(.Normal)! >> Absender.Titel(für : .normal)!
Ändern Alle zu AnyObject.
InformationsquelleAutor Brian Oh
So ist dies für swift 4.0 nicht die Letzte.
InformationsquelleAutor Justie
Swift4.0
InformationsquelleAutor Rinju Jain