美文网首页
UITextField的一些基础用法

UITextField的一些基础用法

作者: 阿小大人 | 来源:发表于2017-09-11 16:34 被阅读5次
    1. 通知

    UITextField派生自UIControl,所以UIControl类中的通知系统在文本字段中也可以使用。

    除了UIControl类的标准事件,你还可以使用下列UITextField类特有的事件:

    UITextFieldTextDidBeginEditingNotification
    UITextFieldTextDidChangeNotification
    UITextFieldTextDidEndEditingNotification
    

    当文本字段退出编辑模式时触发,通知的object属性存储了最终文本。

    因为文本字段要使用键盘输入文字,所以下面这些事件发生时,也会发送动作通知

    UIKeyboardWillShowNotification   // 键盘显示之前发送
    UIKeyboardDidShowNotification    // 键盘显示之后发送
    UIKeyboardWillHideNotification   // 键盘隐藏之前发送
    UIKeyboardDidHideNotification    // 键盘隐藏之后发送
    
    2. 限制只能输入特定的字符
    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        NSString *limitStr = @"0123456789\n";
        NSCharacterSet *characterSet= [[NSCharacterSet characterSetWithCharactersInString:limitStr] invertedSet];
        NSString *filtered = [[string componentsSeparatedByCharactersInSet:characterSet] componentsJoinedByString:@""];
        BOOL canChange = [string isEqualToString:filtered];
        return canChange;
    }
    

    ”0123456789\n” (代表可以输入数字和换行,请注意这个\n,如果不写这个,Done按键将不会触发.如果用在SearchBar中,将会不触发Search事件,因为你自己限制不让输入\n。)

    当然,你还可以在以上方法return之前,提示用户只能输入数字。

    3. 限制只能输入一定长度的字符
    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
    {
        // string为此时输入的那个字符
        // 返回YES就是可以改变输入框的值,NO相反
        if ([string isEqualToString:@"\n"]) {
            return YES;
        }
        NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string];
        // 如果输入框内容大于20则弹出警告
        if ([toBeString length] > 20) {
            textField.text = [toBeString substringToIndex:20];
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"最多不能超过20字" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
            [alert show];
            return NO;
        }
        return YES;
    }
    

    相关文章

      网友评论

          本文标题:UITextField的一些基础用法

          本文链接:https://www.haomeiwen.com/subject/fwcfsxtx.html