나는 내 대답, 사이트를 검색했으나이 문제에 대해 어떻게 생각하는지 또한 생각합니다.NSString을 숫자로 제한하고 # 문자를 입력 한 경우. (코드 포함)
필자는 텍스트 필드를 10 자와 숫자로만 제한하려고합니다.
아래는이 사이트의 다른 질문에 주로 사용되는 코드입니다. 내가 뭘하려고 매쉬 내 한계 함께이 코드
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:LEGAL] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
NSString *newString = [myTextField.text stringByReplacingCharactersInRange:range withString:filtered];
return !([newString length] > 10);
}
이 내 텍스트 필드를 클릭 할 때까지 내 빌드에 문제가 없습니다 ...하지만 난 스레드가 중단 점에서 중지 "라는 녹색 화살표 경고를 1 " 지금은 여러 가지 시도를 해봤지만 지금은 저주 받았다고 느낍니다. 저는 여기가 누군가에게 진정으로 쉬운 일이되기를 바라고 있습니다 ...
그들은 각각 (하나 또는 다른) 작동합니다. 아래 코드를 참조하십시오. 그러나 함께 작업하게 만들 수는 없습니다.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [myTextField.text stringByReplacingCharactersInRange:range withString:string];
return !([newString length] > 10);
}
이
은 ...- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:LEGAL] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return [string isEqualToString:filtered];
}
이것은 또한에만 문제없이 번호로 내 입력을 제한 10 및 내 입력을 제한합니다. 을 제공했습니다. LEGAL을 숫자로만 정의했습니다 ...
나는 그들과 함께 일할 수없는 것처럼 보입니다 ... 아무도이 하나 도와 줄 수 있습니까 ???
정확한 예외를 얻으려면 NSZombieEnable을 설정하십시오. 그것은 콘솔에서 자세한 예외를 보여줍니다. 예외를 찾아서 게시하십시오. –
중단 점을 치고 있습니다. 멈추고 "스레드가 중단 점 1에서 중지되었습니다"라고 말합니다. 중단 점을 제거하거나 (Command + 6을 치면 쉽게 찾을 수 있음) 중단 점을 비활성화하십시오. – NJones