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("Δεύτερος χειριστής")
}
Κατά το κλικ, και οι δύο χειριστές θα κληθούν με τη σειρά.