Εύκολος τρόπος για να απενεργοποιήσετε ένα UITextField;

ψήφοι
42

Είναι ένας εύκολος τρόπος για να απενεργοποιήσετε την εκεί UITextFieldστον κώδικα;

Η εφαρμογή μου έχει 12 UITextFieldπου είναι όλα ενεργοποιημένη από προεπιλογή, αλλά όταν μια αλλαγή εντοπίζεται στο τμήμα ελέγχου μου θέλω να απενεργοποιήσετε κάποια από τα UITextFieldανάλογα με το τι τομέα των επιλογές του χρήστη.

Απλά πρέπει να γνωρίζουν πώς να το απενεργοποιήσετε ή να είναι μη επεξεργάσιμο;

Ευχαριστώ

Δημοσιεύθηκε 01/03/2009 στις 13:16
πηγή χρήστη
Σε άλλες γλώσσες...                            


5 απαντήσεις

ψήφοι
98

Σε Objective-C:

textField.enabled = NO;

Σε Swift:

textField.isEnabled = false

Παραπομπή: UIControl.isEnabled

Απαντήθηκε 01/03/2009 στις 13:31
πηγή χρήστη

ψήφοι
27

Αν θέλετε επίσης να δείχνουν ότι το πεδίο κειμένου είναι απενεργοποιημένη θα πρέπει να προσθέσετε περισσότερα κωδικό:

αν χρησιμοποιείτε UITextBorderStyleRoundedRect, το μόνο που μπορεί γκρι από το κείμενο:

textField.enabled = NO;
textField.textColor = [UIColor lightGrayColor];

αν χρησιμοποιείτε οποιοδήποτε άλλο στυλ, μπορείτε επίσης να γκρι έξω φόντο:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
Απαντήθηκε 01/05/2012 στις 09:56
πηγή χρήστη

ψήφοι
10

Αυτό θα ήταν το πιο απλό απ 'όλα, όταν πολλαπλές textfields πάρα πολύ:

σε viewDidLoad: (που τον εκπρόσωπο μόνο για textfields η οποία δεν θα πρέπει να είναι επεξεργάσιμο.

self.textfield.delegate=self;

και τοποθετήστε αυτή τη λειτουργία εκπρόσωπος:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return NO;
}

Αυτό είναι!

Απαντήθηκε 08/07/2013 στις 18:40
πηγή χρήστη

ψήφοι
1

Κάντε κατηγορία για UIView.

προσθέστε ακόλουθες μεθόδους σε αυτή την κατηγορία.

-(void)disable {
    self.alpha = 0.5;
    self.userInteractionEnabled = FALSE;
}

-(void)enable {
    self.alpha = 1.0;
    self.userInteractionEnabled = TRUE;
}

τότε απλά καλέστε

yourTextField.disable();

Στην πραγματικότητα, μπορείτε να χρησιμοποιήσετε αυτό σε οποιαδήποτε προβολή που θέλετε.

Απαντήθηκε 02/09/2016 στις 06:51
πηγή χρήστη

ψήφοι
-1

Θα πρέπει να είναι σύμφωνες με UITextFieldDelegateκαι να επιστρέψει falseσε αυτή τη μέθοδο. Με αυτό τον τρόπο το πεδίο κειμένου εξακολουθεί να είναι επιλέξιμη, αλλά δεν είναι διαθέσιμη για την επεξεργασία και κοπή

Κώδικας είναι σε Swift 4

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  return false
}
Απαντήθηκε 18/05/2018 στις 12:40
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more