이 문제를 해결하는 가장 좋은 방법을 찾을 수없는 것 같습니다. 사용자가 소수점을 누르면 다음 텍스트 필드로 이동합니다. 내가 가지고있는 문제는 다음 텍스트 필드에 십진수를 표시하고 십진수 만 입력하면 작동합니다. 내가 진술을 시작하는 방식 때문에 왜 십진수 만 허용하는지 이해할 수 있다고 믿는다. 그러나 나는 최선의 접근법을 여기에서 파악할 수 없다.shouldChangeCharactersInRange 논리
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *decmial = @".";
if ([textField.text isEqualToString:@"."])
{
if (octet1.text == decmial) {
octet1.text = [octet1.text stringByReplacingOccurrencesOfString:decmial withString:@""];
[octet1 isFirstResponder];
[octet2 becomeFirstResponder];
}
else if (octet2.text == decmial) {
octet2.text = [octet2.text stringByReplacingOccurrencesOfString:decmial withString:@""];
[octet2 isFirstResponder];
[octet3 becomeFirstResponder];
}
else if (octet3.text == decmial) {
octet3.text = [octet3.text stringByReplacingOccurrencesOfString:decmial withString:@""];
[octet3 isFirstResponder];
[octet4 becomeFirstResponder];
}
else if (octet4.text == decmial) {
octet4.text = [octet4.text stringByReplacingOccurrencesOfString:decmial withString:@""];
[octet4 isFirstResponder];
[myBitMask becomeFirstResponder];
}
}
return YES;
}
큰이 소수를 제외했다가 다음 텍스트 필드에 밀려 점점 계속 그렇게 소수가있다 누르면 다음 텍스트 필드로 이동합니다. 텍스트 필드에 십진수를 넣지 않게하려면 어떻게합니까? – Taken
코드를 수정했습니다. OS가 대체 작업을 수행하지 않도록 NO를 리턴해야합니다 (이미 완료 했음). – tarmes
그래, 그랬어,하지만 지금은 숫자 제외하지 않습니다. – Taken