0
以下是挑戰;我想確保輸入到UItextview的數字是65535 [小]或更少。我可以限制頂部數字爲UITextView字段驗證質詢
an [NSCharacterSet characterSetWithCharactersInString:@「123456」];
但我需要變得更聰明,導致下一個數字可以是任何數字最多65;但我不能簡單地使用NSCharacterSet,或者我可以嗎?
你的想法是什麼?
以下是挑戰;我想確保輸入到UItextview的數字是65535 [小]或更少。我可以限制頂部數字爲UITextView字段驗證質詢
an [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事件設置。解決方案的祕訣在於查看最後一位數字和第一位數字,並限制長度。