Sobes.tech
Junior — Middle

Πώς γίνεται η επεξεργασία πολλαπλών ακροατών που συνδέονται με ένα γεγονός κλικ;

sobes.tech AI

Απάντηση από AI

Στο iOS, αν σε ένα γεγονός, για παράδειγμα, ένα κλικ (touchUpInside), έχουν συσχετιστεί πολλοί ακροατές (target-action), αυτοί καλούνται με τη σειρά που προστέθηκαν. Κάθε ακροατής λαμβάνει το γεγονός και μπορεί να εκτελέσει τη δική του λογική.

Εάν χρειάζεται να ελέγξετε τη σειρά ή να αποτρέψετε περαιτέρω επεξεργασία, μπορείτε να το διαχειριστείτε μέσα στον χειριστή, για παράδειγμα, απενεργοποιώντας άλλους ακροατές ή χρησιμοποιώντας σημαίες. Ωστόσο, ο τυπικός μηχανισμός του UIKit δεν παρέχει ενσωματωμένο τρόπο να σταματήσετε την εξάπλωση του γεγονότος μεταξύ των ακροατών.

Παράδειγμα προσθήκης πολλών χειριστών σε ένα UIButton:

button.addTarget(self, action: #selector(firstHandler), for: .touchUpInside)
button.addTarget(self, action: #selector(secondHandler), for: .touchUpInside)

@objc func firstHandler() {
    print("Πρώτος χειριστής")
}

@objc func secondHandler() {
    print("Δεύτερος χειριστής")
}

Κατά το κλικ, και οι δύο χειριστές θα κληθούν με τη σειρά.