如何强制UITextView仅显示小写字母?

时间:2015-05-17 09:57:17

标签: ios objective-c lowercase

我正在开发适用于iOS的社交脚本,但我只需将用户名登录为小写。我有lowercaseString需要进入的字符串,但我并不确切知道在哪里。

所以这就是代码:

NSString *username = [self.usernameField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];**

我将.lowercaseString仅用于小写登录?

2 个答案:

答案 0 :(得分:0)

NSString *username = [self.usernameField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].lowercaseString;

但是,这只能确保username为小写。要确保UITextField仅包含小写字符,您可以执行以下操作:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
  replacementString:(NSString *)string {


   NSRange upperCharRange;
   upperCharRange = [string rangeOfCharacterFromSet:[NSCharacterSet uppercaseLetterCharacterSet]];

   if (uppercaseCharRange.location != NSNotFound) {

        textField.text = [textField.text stringByReplacingCharactersInRange:range
                                                             withString:[string lowercaseString]];
        return NO;
    }

    return YES;
}

只有在将<UITextFieldDelegate>添加到班级的.h文件中时才会调用此方法。您还需要将UITextField实例的委托设置为类实例的self,如下所示:

textField.delegate = (id <UITextFieldDelegate>)mainViewController;

答案 1 :(得分:0)

您可以在self.usernameField.text之后或]]之后添加。由于lowerCase不会影响空格或换行符,因此没有任何区别。

唯一的区别是在修剪字符串后,字符串可能会更短,因此转换为小写字符串将花费更少的时间(尽管不是很明显)。

因此我建议在]]之后添加它:

NSString *username = [self.usernameField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].lowercaseString;