您的位置:首页 > 产品设计 > UI/UE

UITextFelid 代理方法 输入一定范围的数字

2016-09-06 15:34 387 查看
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{  
    //返回一个BOOL值,指定是否循序文本字段开始编辑  
    return YES;  
}  
 
- (void)textFieldDidBeginEditing:(UITextField *)textField{
    //开始编辑时触发,文本字段将成为first responder
}
 
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    //返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder
    //要想在用户结束编辑时阻止文本字段消失,可以返回NO
    //这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息
    return NO;
}
 
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    //当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。
    //这对于想要加入撤销选项的应用程序特别有用
    //可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。   
    //要防止文字被改变可以返回NO
    //这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中
    return YES;
}
- (BOOL)textFieldShouldClear:(UITextField *)textField{
    //返回一个BOOL值指明是否允许根据用户请求清除内容
    //可以设置在特定条件下才允许清除内容
    return YES;
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    //返回一个BOOL值,指明是否允许在按下回车键时结束编辑
    //如果允许要调用resignFirstResponder 方法,这回导致结束编辑,而键盘会被收起
    [textField resignFirstResponder];//查一下resign这个单词的意思就明白这个方法了
    return YES;
}






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


{

//确保为0123456789数字

    NSCharacterSet *cs;

    cs = [[NSCharacterSet
characterSetWithCharactersInString:@"0123456789\n"]
invertedSet];


    NSString *filtered = [[string
componentsSeparatedByCharactersInSet:cs]
componentsJoinedByString:@""];


        BOOL basicTest = [string
isEqualToString:filtered];


        if(!basicTest)

        {

            return
NO;


        }

  

      NSMutableString *st=[NSMutableString stringWithFormat:@"%@%@",textField.text,string];

    if ([string isEqualToString:@""]) {

       [st deleteCharactersInRange:range];

    }

  

    //确保输入数值大于200

    if ([st intValue]>200) {

            return
NO;


    }

    

   

    return
YES;


}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uitextfield ios