这是挑战;我想确保输入到 UItextview 中的数字是 65535 [a short] 或更少。我可以将最高位限制为
一个[NSCharacterSet characterSetWithCharactersInString:@"123456"];
但我需要更聪明,因为下一个数字可以是 65 以内的任何数字;但我不能简单地使用 NSCharacterSet 或者可以吗?
你觉得呢?你有没有什么想法?
这是挑战;我想确保输入到 UItextview 中的数字是 65535 [a short] 或更少。我可以将最高位限制为
一个[NSCharacterSet characterSetWithCharactersInString:@"123456"];
但我需要更聪明,因为下一个数字可以是 65 以内的任何数字;但我不能简单地使用 NSCharacterSet 或者可以吗?
你觉得呢?你有没有什么想法?
好的,找到了一种很简单的解决方案;我喜欢简单。使用了这个电话和这个代码。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([textField.accessibilityIdentifier isEqualToString:@"minor"]) {
if (newLength == 0) {
minorMaxColumns = 5;
}
if (newLength == 2) {
if ([string integerValue] >= 6) {
minorMaxColumns = 4;
}
}
if (newLength == 3) {
if ([textField.text integerValue] >= 65) {
if ([string integerValue] >= 5) {
minorMaxColumns = 4;
}
}
}
if ([self isiBeaconMajorMinor:string] && (newLength <= minorMaxColumns)) {
return YES;
}
return NO;
}
-(BOOL)isiBeaconMajorMinor:(NSString*)inputString{
BOOL isValid = NO;
NS CharacterSet *alphaNumbersSet = [NSCharacterSet decimalDigitCharacterSet];
NSCharacterSet *stringSet = [NSCharacterSet characterSetWithCharactersInString:inputString];
isValid = [alphaNumbersSet isSupersetOfSet:stringSet];
return isValid;
}
不完全给你 65535,它只给你 65499;但它足够接近。当然欢迎您提出更好的解决方案。变量“minorMaxColumns”也由 Editing Did Begin Event 设置。查看最后一位和第一位并限制长度的解决方案的秘诀。