English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Limitare la lunghezza dell'input del TextField con poche righe di codice iOS

Sul web ci sono molti metodi per limitare la lunghezza dell'input di textField, ma penso che non siano tutti molto perfetti, per essere precisi, non sembrano soddisfare le esigenze dello sviluppo reale, quindi ho deciso di riassumere i metodi per limitare la lunghezza dell'input di textField.

 L'approccio che adotto non è il metodo di ascolto, ma un metodo di implementazione di agente molto diverso, perché non utilizzare il metodo di ascolto???
 Quando leggi questo articolo, probabilmente ti senti a disagio per un problema, ovvero non essere in grado di controllare perfettamente il contenuto di input dopo aver limitato la lunghezza dell'input.

 Facciamo un esempio semplice: 

Vuoi limitare la lunghezza dell'input a 30 caratteri, dopo aver inserito 30 caratteri, il rilevamento è in grado di controllare molto bene di non permetterti di continuare a inserire, ma problemi sorgono, quando muovi il cursore al centro del contenuto di input, puoi continuare a inserire. Questo tipo di input è molto fastidioso perché dopo aver inserito il cursore si sposta all'ultimo, e si limita a non permetterti di continuare a inserire, ma il contenuto che hai appena inserito rimane nel centro del testo, il che non è conforme alle esigenze.

 Quindi qui utilizzare l'intermediario può realizzare molto bene l'effetto che vogliamo, speriamo che solo alcune righe di codice ti possano essere utili.

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  if (textField == self.liveThemeTextField) {
  //Questo if è per ottenere l'operazione di eliminazione, senza questo if ci sarebbe il rischio che dopo aver raggiunto il limite di caratteri non si possa usare anche il tasto di eliminazione.
    if (range.length == 1 && string.length == 0) {
      return YES;
    }
    //così facile
    else if (self.liveThemeTextField.text.length >= 30) {
      self.liveThemeTextField.text = [textField.text substringToIndex:30];
      return NO;
    }
  }
  return YES;
}

Questo è tutto il contenuto dell'articolo, spero che sia utile per il vostro studio e vi prego di supportare tutorial di grido.

Ti potrebbe interessare