【问题标题】:Solution for iPhone new file dialog keyboardiPhone新文件对话框键盘解决方案
【发布时间】:2010-12-17 09:53:41
【问题描述】:

我想让用户输入一个新文件的名称,所以我想阻止某些字符进入。有没有我可以使用的特殊键盘,或者我可以禁用 iphone 键盘上的某些键。

是在输入文本上运行正则表达式并告诉用户文件名无效的答案(如果是这样,那个正则表达式会是什么?)

回答:(或我最终做了什么)

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

    BOOL valid;
    //if the user has put in a space at the beginning
    if ([string isEqualToString:@" "]){
        if (range.location == 0){
            valid = NO;
        }
        else{
            valid = YES;
        }
    }
    //otherwise test for alpha numeric
    else{
        NSCharacterSet *alphaSet = [NSCharacterSet alphanumericCharacterSet];
        valid = [[string stringByTrimmingCharactersInSet:alphaSet] isEqualToString:@""];
    }

    //print the warning label
    if (valid == NO){
        [errorLabel setText:@"Invalid input"];
    }
    else{
        [errorLabel setText:nil];
    }
    return valid;
}

【问题讨论】:

    标签: iphone objective-c file keyboard


    【解决方案1】:

    你可以实现委托方法

    对于 UITextField,

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;   // return NO to not change text
    

    对于 UITextview

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
    

    并决定天气是否附加输入的字符。

    【讨论】:

    • 这会起作用,但你知道有什么方法可以禁用你不想进入的键吗?
    • 如果你的意思是,从键盘本身隐藏不需要的键,你必须实现自己的键盘!
    【解决方案2】:

    您可以实现 UITextFieldDelegate 协议并使用textField:shouldChangeCharactersInRange:replacementString: 来监视文本输入并通过返回 NO 来防止不需要的字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 2012-08-04
      • 2014-03-13
      • 2013-03-24
      • 2017-11-10
      • 1970-01-01
      相关资源
      最近更新 更多