【问题标题】:How do I enforce that an UITextView shows only lower-case letters? [duplicate]如何强制 UITextView 仅显示小写字母? [复制]
【发布时间】:2015-07-28 22:04:40
【问题描述】:

我正在为 iOS 开发一个社交脚本,但我只需要我的用户名登录是小写的。我有lowercaseString 需要进入的字符串,但我不知道具体在哪里。

所以这是代码:

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

我应该把.lowercaseString 放在哪里只为小写登录?

【问题讨论】:

    标签: ios objective-c lowercase


    【解决方案1】:
    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;
    

    【讨论】:

    • 在此之后仍然可以使用大写字母.. :(
    • 变量username 将是小写。如果用户键入大写字母,文本字段仍将是大写字母。你想只显示小写字母吗?
    • 我在上面添加了一个解决方案,确保文本字段只包含小写字符。
    • 太棒了,它有效。非常感谢!
    • 如果用户粘贴包含两个或多个大写字母范围的文本,此代码将失败。
    【解决方案2】:

    您可以将其放在self.usernameField.text]] 之后。实际上没有任何区别,因为小写不影响空格或换行符。

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-09-15
      • 2023-03-24
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      • 1970-01-01
      • 2013-08-23
      相关资源
      最近更新 更多