我正在製作一個coredata應用程序,在該應用程序中,我被指示在每行中創建一個帶有textfield的tableview(填充表單),這是我成功完成的。然後,我用上一個和下一個按鈕創建了一個工具欄,並添加到textField的inputAccsoryView中,以便在每個單元格的文本字段之間進行導航。每行一個文本字段。我也可以用上一個和下一個按鈕方法來完成這個魔術。現在的問題:在uitableview的textfields之間導航
假設我有3個部分。在第一部分4行。在第二部分6行和最後一部分1行中。現在,當我從第一排開始,然後按下第11排,它正常工作,但接着我按下接下來沒有任何反應,因爲第一排已經出隊了,我得到了「無」。我使用的代碼:
構成單元
if (cell == nil) {
NSLog(@"tag inside:%i",tag);
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1
reuseIdentifier:identifier] autorelease];
UITextField *theTextField = [[UITextField alloc] initWithFrame:CGRectMake(120, 10, 170, 25)];
theTextField.textAlignment = UITextAlignmentRight;
theTextField.delegate = self;
theTextField.tag = tag;
theTextField.inputAccessoryView = [self configureTheToolBar];
[theTextField setKeyboardAppearance:UIKeyboardAppearanceAlert];
[cell.contentView addSubview:theTextField];
[theTextField release];
}
cell.textLabel.text = rowLabel;
UITextField *textField = (UITextField *)[cell.contentView viewWithTag:tag];
textField.text = rowValue
我提供的標籤文本框像601,602等。
然後得到currentTextField標籤
- (void)textFieldDidBeginEditing:(UITextField *)textField{
currentTextField = textField.tag;
}
那麼接下來的方法
if(currentTextField == 611){
currentTextField = 601;
} else{
currentTextField = currentTextField + 1;
}
NSLog(@"current text fiedld = %i",currentTextField);
NSLog(@"text ; %@",[self cellForTag:currentTextField].textLabel.text);
UITextField *firstResponderField = (UITextField *) [[self cellForTag:currentTextField].contentView viewWithTag:currentTextField];
[firstResponderField becomeFirstResponder];
和cellForTag方法:
-(UITableViewCell *)cellForTag:(NSInteger)tag{
UITableViewCell *cell;
switch (tag) {
case 601:{
NSUInteger onlyRow[] = {0, 0};
NSIndexPath *onlyRowPath = [NSIndexPath indexPathWithIndexes:onlyRow length:2];
//[self.tableView scrollToRowAtIndexPath:onlyRowPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
cell = [self.tableView cellForRowAtIndexPath:onlyRowPath];
break;
}
return cell
這段代碼是關閉屏幕電池的工作部分,因爲一旦得到內存不足我無法訪問該單元格中的文本框,並且下一個按鈕停止工作直到currentTextfield值達到任何可見行。可能是什麼解決方案。 我的堆棧溢出了。 :)
好this線程的伎倆,但我不知道怎麼辦。任何人都可以解釋我如何?