【发布时间】:2016-10-26 13:09:11
【问题描述】:
我想发送服务电话以了解该引脚是否正确。我有 4 个文本字段。如果输入第 4 个文本字段,服务呼叫必须自动进行。这意味着所有文本字段都应该填写。如果用户更改 1 或 2 或 3 或 4,服务调用必须以某种方式进行。我知道我们必须写 textField:shouldChangeCharactersInRange。但我不知道在哪里写。
请帮助我。这是我的代码:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *acceptedInput = [NSCharacterSet characterSetWithCharactersInString:ACCEPTABLE_CHARECTERS];
if (textField == self.textFied1&&([[string componentsSeparatedByCharactersInSet:acceptedInput] count] > 0))
{
int length = (int)[textField.text length];
if (length==1)
{
[self.textField2 becomeFirstResponder];
if(range.length == 0)
{
[self.textField2 becomeFirstResponder];
return NO;
}
if([self.textFied1.text length]==1)
{
self.textFied1.text=@"";
[self.textFied1 becomeFirstResponder];
return NO;
}
}
if (([[self.textField4 text] length] > 0)&& ([[self.textField2 text] length] > 0)&& ([[self.textField3 text] length] > 0)&& ([[self.textFied1 text] length] > 0)){
[self connected1];//this step is not executing
}
}
else if (textField == self.textField2&&([[string componentsSeparatedByCharactersInSet:acceptedInput] count] > 0))
{
int length = (int)[textField.text length];
if (length==1)
{
if(range.length == 0)
{
[self.textField3 becomeFirstResponder];
return NO;
}
if([self.textField2.text length]==1)
{
self.textField2.text=@"";
[self.textFied1 becomeFirstResponder];
return NO;
}
}
if (([[self.textField4 text] length] > 0)&& ([[self.textFied1 text] length] > 0)&& ([[self.textField3 text] length] > 0)&&([[self.textField2 text] length] > 0)){
[self connected1];//this step is not executing
}
}
else if (textField == self.textField3&&([[string componentsSeparatedByCharactersInSet:acceptedInput] count] > 0))
{
int length = (int)[self.textField3.text length];
if (length==1)
{
if(range.length == 0)
{
[self.textField4 becomeFirstResponder];
return NO;
}
if([self.textField3.text length]==1)
{
self.textField3.text=@"";
[self.textField2 becomeFirstResponder];
return NO;
}
}
if (([[self.textField4 text] length] > 0)&& ([[self.textField2 text] length] > 0)&& ([[self.textFied1 text] length] > 0)&& ([[self.textField3 text] length] > 0)){
[self connected1];//this step is not executing
}
}
else if (textField == self.textField4&&([[string componentsSeparatedByCharactersInSet:acceptedInput] count] > 0))
{
int length = (int)[textField.text length];
if (length==1)
{
if(range.length == 0)
return NO;
if([self.textField4.text length]==1)
{
self.textField4.text=@"";
[self.textField3 becomeFirstResponder];
return NO;
}
}
// here my service code
if (([[self.textFied1 text] length] > 0)&& ([[self.textField2 text] length] > 0)&& ([[self.textField3 text] length] > 0)&&([[self.textField4 text] length] > 0))
{
[self connected1];//this step is not executing
}
}
return YES;
}
【问题讨论】:
-
@Candost 感谢编辑
-
任何人都可以帮助我
-
你不会在
if(longTestOn4TextFields){[self connected1];}上使用“确定”或“连接”按钮,或者至少在textFieldDidEndEditing:上吗? -
@larme 对公司的要求,我必须在任何字段输入第 4 个密码后直接发送响应
-
在每个
if测试之前,您能否记录下文本字段的长度,以帮助理解为什么它没有通过测试?
标签: ios objective-c iphone textfield