2016-03-27 10 views
0
  1. Ben kurulum benim UITextField girmek bıraktı ve imleç normal sağ ucunda olduğunu var gidin. Ben imleç UITextField sol sonuna git bir boşluk girmiş
    enter image description hereRightalignment UITextField en imleç sonra <code>NSTextAlignmentRight</code> olmak için bir boşluğunu

  2. .
    enter image description here

  3. böyle

UITextFieldDelegate yöntemi uygulamak bu sorunu çözmek için deneyin:

#pragma mark - UITextFieldDelegate 
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if (range.location == 0 && [string isEqualToString:@" "]) { 
    return NO; 
    } 
return YES; 
} 

Ama bu dağınıklık biraz, ve ben girdi alanı olamaz ilk karakter için.

Bunu düzeltmek için daha iyi bir çözüm var mı?
Bu hata neden oluyor? durumda

cevap

2
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    // only when adding on the end of textfield && it's a space 
    if (range.location == textField.text.length && [string isEqualToString:@" "]) { 
     // ignore replacement string and add your own 
     textField.text = [textField.text stringByAppendingString:@"\u00a0"]; 
     return NO; 
    } 
    // for all other cases, proceed with replacement 
    return YES; 
} 

açık değil, textField: shouldChangeCharactersInRange: replacementString: bir UITextFieldDelegate protokol yöntemi, yukarıda yöntemi [textField setDelegate: kendinden] tarafından belirlenen viewcontroller olacağını sizin örnekte bu yüzden. Eğer geri düzenli boşluk istiyorsanız

, belli ki aynı zamanda meydana gelmesini değiştirerek geri metni dönüştürmek için hatırlamak gerekecektir @ @ ile "\ u00a0""" textfield dışına dize alırken

Ref:Right aligned UITextField spacebar does not advance cursor in iOS 7

İlgili konular