【发布时间】:2015-03-21 06:23:08
【问题描述】:
我在自定义 UITableViewCell 中使用自定义委托和我的 UITextField。基本上我的 UITableView 上有 UITextFields,在编辑模式下,我希望能够编辑 UITextField 内的内容。
我的问题是,当我进入编辑模式并尝试在文本字段中输入内容时,我只能输入一个字符并且它会加倍。在这个例子中,我尝试输入“p”,它只让我输入“p”,然后它变成了“pp”。
这是我的代码。作为一个仅供参考,我对 iOS/编程/自定义委托/自定义 UITableViewCells 非常陌生。
UITableViewCell 子类.h:
@protocol MenuTableViewCellDelegate <NSObject>
- (void)updatedFoodItem:(NSString *)foodItem fromCell:(id)sender;
@end
@interface MenuTableViewCell : UITableViewCell <UITextFieldDelegate>
@property (nonatomic, weak) id <MenuTableViewCellDelegate> delegate;
@property (weak, nonatomic) IBOutlet UITextField *foodTextField;
@property (weak, nonatomic) IBOutlet UITextField *priceTextField;
@end
UITableViewCell .m:
- (void)awakeFromNib {
self.foodTextField.delegate = self;
}
// Delegate method for tableview cell - food item text field is within cell.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
[self.delegate updatedFoodItem:string fromCell:self];
return YES;
}
在我的 ViewController.m 中:
- (void)updatedFoodItem:(NSString *)foodItem fromCell:(MenuTableViewCell *)cell
{
NSIndexPath *p = [self.menuTableView indexPathForCell:cell];
id item = self.menuItemsArray[p.row];
cell.foodTextField.text = foodItem;
}
顺便说一句,我意识到上面可能还没有更新我的数据,我还没有弄清楚,所以任何建议都会很棒。
【问题讨论】:
标签: ios uitableview uitextfield uitextfielddelegate