Iphone 如何验证只允许0,1,…9和的文本字段。符号

Iphone 如何验证只允许0,1,…9和的文本字段。符号,iphone,Iphone,我在应用程序中放置了4个文本字段 我需要4个文本字段只允许数字0,1…9和。象征 为此,我放置了键盘数字和标点符号。这是正常的,但在允许ABC、/、(,中,所有都被激活 但在我的文本字段中,只允许0,1,…9和.symbol 我怎样才能做到这一点 谁能帮我一下吗 提前感谢您。如果您的目标是iOS 4.1及更高版本,您可以使用UIKeyboardTypeDecimalPad。如果您需要支持旧版本,需要小数点,并且不需要任何其他内容,则必须创建自定义键盘 如果要筛选出其他键而不删除它们,请指定某个对

我在应用程序中放置了4个文本字段

我需要4个文本字段只允许数字0,1…9和。象征

为此,我放置了键盘数字和标点符号。这是正常的,但在允许ABC、/、(,中,所有都被激活

但在我的文本字段中,只允许0,1,…9和.symbol

我怎样才能做到这一点

谁能帮我一下吗


提前感谢您。

如果您的目标是iOS 4.1及更高版本,您可以使用UIKeyboardTypeDecimalPad。如果您需要支持旧版本,需要小数点,并且不需要任何其他内容,则必须创建自定义键盘

如果要筛选出其他键而不删除它们,请指定某个对象作为文本字段的委托。该对象应包含以下代码:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    static NSCharacterSet *charSet = nil;
    if(!charSet) {
        charSet = [[[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet] retain];
    }
    NSRange location = [string rangeOfCharacterFromSet:charSet];
    return (location.location == NSNotFound);
}

如果您的目标是iOS 4.1及更高版本,则可以使用UIKeyboardTypeDecimalPad。如果您需要支持旧版本,需要小数点,并且不需要其他任何东西,则必须创建自定义键盘

如果要筛选出其他键而不删除它们,请指定某个对象作为文本字段的委托。该对象应包含以下代码:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    static NSCharacterSet *charSet = nil;
    if(!charSet) {
        charSet = [[[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet] retain];
    }
    NSRange location = [string rangeOfCharacterFromSet:charSet];
    return (location.location == NSNotFound);
}

默认键盘只允许o、1、…9和。对于文本字段,UIKeyboardTypeDecimalPad类型仅显示它们,但仅在4.1和更高版本中可用。对于较旧版本,您可以过滤掉视图中的其他键,但用户仍然可以看到按钮。如果按钮可见,则没有问题。我使用4.1和更新的版本那么我该如何过滤它们。是的,但是,ABC和#+-按钮也处于活动状态。但是可以将其禁用抱歉,但我不知道。默认键盘只允许o、1、…9和。对于文本字段,UIKeyboardTypeDecimalPad类型仅显示它们,但仅在4.1和更高版本中可用。对于旧版本版本,您可以过滤掉视图中的其他键,但按钮仍然对用户可见。如果按钮可见,没有问题……我使用4.1和更高版本,那么如何过滤它们。是的,它可以工作,但是ABC和#+-按钮也处于活动状态。但是可以将其禁用抱歉,但我不知道。