0
我创建动态画面和动态创建的文本字段 当我触摸文本字段,并开始写,然后我的键盘响应速度慢和花费近3-4秒时,在屏幕上显示一个字符。 我该如何解决这个问题?提前致谢。键盘响应缓慢的ios
- (BOOL) textFieldShouldBeginEditing:(UITextField *)textField
{
NSInteger componentType;
BOOL isEditable = YES;
for (int i = 0; i < self.screenComponentData.count; i++)
{
if ([self.keyboardType[i] intValue] == NUMERIC)
{
[textField setKeyboardType:UIKeyboardTypeNumberPad];
}
else if([self.keyboardType[i] intValue] == ALPHA)
{
[textField setKeyboardType:UIKeyboardTypeAlphabet];
}
else if([self.keyboardType[i] intValue] == ALPHANUMERIC)
{
[textField setKeyboardType:UIKeyboardTypeDefault];
}
NSString *str = [self.entityMap objectAtIndex:i];
// str = [str substringFromIndex:2];
if (textField.tag == [str intValue])
{
componentType = [self.screenComponentData[i][3] intValue];
if ([self.screenComponentData[i][7] characterAtIndex:27] == NON_EDITABLE)
{
isEditable = NO;
}
break;
}
}
if (componentType == DATE_PICKER || componentType == TIME_PICKER || componentType == VALUE_PICKER)
{
[self textFieldTouched:textField];
return NO;
}
else if(isEditable == NO)
{
//Dont show picker & dont allow user to edit too.SHOW DEFAULT TEXT
return NO;
}
else
{
return YES;
}
}
- (void) textFieldTouched:(UITextField *)textField
{
NSArray *test1;
NSArray *compoType;
NSArray *tag_Table_Name; //<--table to where to get data
for (int index = 0; index < self.componentType.count ; index++) {
// pooja's code'
if (textField.tag ==60 ||textField.tag ==865 ||textField.tag ==1202 || textField.tag==48)
{
tag_Table_Name=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL13 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
compoType=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL3 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
test1=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL1 FROM TB%@",tag_Table_Name[0][0]]];
if (self.textField.tag== 61) {
[email protected]"";
}
}else if (textField.tag==61){
tag_Table_Name=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL13 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
compoType=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL3 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
test1=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL1 FROM TB%@ WHERE COL2='%@'",tag_Table_Name[0][0],self.codeString]];
}else if (textField.tag==1159){
tag_Table_Name=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL13 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
compoType=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL3 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
test1=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL1 FROM TB%@",tag_Table_Name[0][0]]];
}else if (textField.tag ==1760){
tag_Table_Name=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL13 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
compoType=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL3 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
test1=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL1 FROM TB%@",tag_Table_Name[0][0]]];
}else if (textField.tag==55){
tag_Table_Name=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL13 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
compoType=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL3 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
test1=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL1 FROM TB%@ WHERE COL2='%@'",tag_Table_Name[0][0],self.codeString]];
}else if (textField.tag==861){
tag_Table_Name=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL13 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
compoType=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL3 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
test1=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL1 FROM TB%@ WHERE COL2='%@'",tag_Table_Name[0][0],self.codeString]];
}else if (textField.tag==108 ||textField.tag == 1154 ||self.textField.tag==66){
tag_Table_Name=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL13 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
compoType=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL3 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
test1=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL1 FROM TB%@",tag_Table_Name[0][0]]];
}else if (textField.tag==1153){
tag_Table_Name=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL13 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
compoType=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL3 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
test1=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL1 FROM TB%@",tag_Table_Name[0][0]]];
}
else{
tag_Table_Name=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL13 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
compoType=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL3 FROM %@ WHERE COL0='%@' and COL2='%ld'",TBSYS0001,self.screenId,(long)textField.tag]];
test1=[DBOperator getDataForQuery:[NSString stringWithFormat:@"SELECT COL1 FROM TB%@",tag_Table_Name[0][0]]];
}
if (textField.tag == 64){
self.tagForFollowUpDate = 64;
self.configure.getFollowConfigDate = self.tagForFollowUpDate;
}
if (textField.tag == 45){
self.tagForDOB = 45;
self.configure.getDOB = self.tagForDOB;
}
}
self.textfieldTAG = textField.tag;
NSInteger compo=[compoType[0][0]intValue];
// NSLog(@"COMPO->%d",compo);
switch (compo) {
case DATE_PICKER:
[self displayDatePicker:textField];
break;
case TIME_PICKER:
[self displayTimePicker:textField];
break;
case VALUE_PICKER:
{
if (self.popOver != nil && [self.popOver isPopoverVisible])
{
[self.popOver dismissPopoverAnimated:YES];
}
RMPickerViewController *pickerVC = [RMPickerViewController pickerController];
pickerVC.delegate = self;
pickerVC.backgroundColor = [UIColor whiteColor];
// pickerVC.tintColor = [UIColor yellowColor];
// pickerVC.selectedBackgroundColor = [UIColor yellowColor];
if (self.commanArray != nil && self.commanArray.count > 0)
{
[self.commanArray removeAllObjects];
}
[self.commanArray addObjectsFromArray:[self getdropListDataWithValue:test1]]; //<--- Value Picker
[pickerVC showFromRect:textField.frame inView:self.scrollView];
break;
}
default:
{
//To get the values for making the syncData string
for (int i = 0; i < self.screenComponentData.count; i++)
{
NSString *str=[self.entityMap objectAtIndex:i];
// str = [str substringFromIndex:2];
if (textField.tag == [str intValue])
{
[self.valueArray replaceObjectAtIndex:i withObject:textField.text];
[self.savingArray replaceObjectAtIndex:i withObject:textField.text];
break;
}
}
[textField setKeyboardType:UIKeyboardTypeDefault];
break;
}
}//end of switch case;
;
}// end of textFieldTouched
您是使用真实设备还是模拟器?你可以在你创建并填写文本字段的地方发布一些代码吗? – 2014-12-03 06:58:15
另外,如果您实施任何,请发布文本字段委托方法的代码。 – 2014-12-03 07:00:07
请发布shouldChangeCharactersInRange委托方法的代码。您在此委托方法中做了很长时间的处理,因此发生这种情况是其中一个原因。 – 2014-12-03 07:02:17