Reputation: 2781
I have a UITableView and it has bunch of UITableViewCells - These UITableViewCells have multiple UITextFields inside it.
Now every time I scroll up and down - and the UITableViewCells go out of the view - and comes back in whatever text I enter inside the UITextField disappears - What is the best way to make this work?
Upvotes: 5
Views: 3417
Reputation: 3691
If you are adding a UITextField
in a UITableViewCell
, you need to take care of cell's state as the cell gets dequeued
while scrolling.
You need to maintain a Dictionary
to retain text in UITextField
which is present in a UITableViewCell
.
Refer my github repo for complete solution of having UITextField / UIButton state in a uitableviewcell.
Code was created in Swift 4 with XCode 9.4
Upvotes: 2
Reputation: 26271
create an NSMutableArray
which at each position, holds an NSString
object which matches each cell.
when you config + show each cell in - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
, set the text of the UITextField
to the string in the array at position indexPath.row
.
when editing a UITextField
, insert/update the NSString
object at the current indexPath.row
position in the array
Upvotes: 14