ios - change first responders in uitableviewcell textfield -


i developing app using storyboard. there custom class uitableviewcell (moneyentrytableviewcell) contains uitextfield.

question: want move focus other text fields, added in other cells, press previous/next (<>) in keyboard.

in .h file

@interface moneyentrytableviewcell : uitableviewcell  @property (strong, nonatomic) iboutlet uilabel *lblmemname; @property (strong, nonatomic) iboutlet uitextfield *textamount; @property (strong, nonatomic) iboutlet uilabel *lblmemid; // hidden   @end 

in .m file

@implementation moneyentrytableviewcell  @synthesize lblmemname,textamount; - (void)awakefromnib { }  - (void)setselected:(bool)selected animated:(bool)animated {     [super setselected:selected animated:animated]; }  @end 

in controller, cellforrowatindexpath func...

- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath {      moneyentrytableviewcell *cell = (moneyentrytableviewcell *)[tableview dequeuereusablecellwithidentifier:@"useramountcell"];     if (!cell)     {          cell = [[moneyentrytableviewcell alloc] initwithstyle:uitableviewcellstyledefault reuseidentifier:@"useramountcell"] ;     }     cell.selectionstyle =uitableviewcellselectionstylenone;      uilabel     *lblname  = (uilabel *)    [cell lblmemname];     lblname.tag =100;     lblname.text = [[self.memberslist objectatindex:indexpath.row] objectatindex:0];      uilabel     *lblid  = (uilabel *)    [cell lblmemid];     lblid.tag =101;     lblid.text = [[self.memberslist objectatindex:indexpath.row] objectatindex:1];      uitextfield *txtfield = (uitextfield *)[cell textamount];     txtfield.tag = 200 + indexpath.row;     txtfield.placeholder = @"0.00";     txtfield.delegate = self;     [txtfield addtarget:self  action:@selector(textfielddidchange:) forcontrolevents:uicontroleventeditingchanged];     txtfield.inputaccessoryview = keyboarddonebuttonview;      return cell; } 

this screen shot of app. in advance.

you can create references textfields want jump between. when set cell, grab reference textfield , set it. example, i'm assuming have nsmutablearray *textfieldarray declared.

// within cellforrowatindexpath self.textfield1 = (uitextfield*)[cell viewwithtag:100]; [self.textfield1.setdelegate:self];  if (![textfieldarray containsobject:self.textfield1]) {     [textfieldarray addobject:self.textfield1]; } 

this way, when recognize "next" button pressed, jump next index in textfieldarray , make text field first responder. can either keep track of index first responder, or iterate through array find 1 active...

for (int = 0; < [textfieldarray count]; i++) {     if ([[textfieldarray objectatindex:i] isfirstresponder]) {         if (i == [textfieldarray count]-1) // last item in array - dismiss             [[textfieldarray objectatindex:i] resignfirstresponder];         else // go next item             [[textfieldarray objectatindex:i+1] becomefirstresponder];     } } 

Comments

Popular posts from this blog

tcpdump - How to check if server received packet (acknowledged) -