我使用 UITableViewController 来显示 KoreanFood 的详细信息。第一个单元格是一个自定义 UITableViewCell (OverviewCell),其中包含一个 Image 和两个 UITextField,我在 Storyboard (AutoLayout) 中创建和布局。
我像这样子类化 UITableviewCell :
// OverviewCell.h
@interface OverviewCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UITextField *englishTitleTF;
@property (strong, nonatomic) IBOutlet UITextField *koreanTitleTF;
@property (strong, nonatomic) IBOutlet UIImageView *myImageView;
@property (strong, nonatomic) UIImage *thumbnail;
我在 Storyboard 中的文本字段设置为启用/UserInteractionenabled,并且委托是我的 TVC。当我创建单元格时,我也在代码中执行此操作:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == GENERAL_SECTION) {
static NSString *overviewCellID = @"overviewCell";
OverviewCell *overviewCell = [tableView dequeueReusableCellWithIdentifier:overviewCellID forIndexPath:indexPath];
overviewCell.englishTitleTF.text = self.generalInfo.titleEnglish;
overviewCell.koreanTitleTF.text = self.generalInfo.titleKorean;
overviewCell.englishTitleTF.enabled = YES;
overviewCell.koreanTitleTF.enabled = NO;
//BOOL test = [overviewCell.englishTitleTF becomeFirstResponder];
overviewCell.koreanTitleTF.delegate = self;
overviewCell.englishTitleTF.delegate = self;
UIImageView *imageView = [[UIImageView alloc] initWithImage:self.generalInfo.thumbnail];
overviewCell.myImageView = imageView;
overviewCell.myImageView.frame = CGRectMake(25, 25, 95, 95);
[overviewCell addSubview:overviewCell.myImageView];
return overviewCell;
}
带有 BOOL 的评论是 NO,我只是不知道为什么......当我设置文本并且它正确显示时,我知道 Outlets 已设置并且 Cell 不是 nil(我检查过)。
为什么这不成为第一响应者?
我还在 OverviewCell 子类中尝试了一些建议,例如命中测试或实现 setSelected: / setEditing: 方法。但是这里 textField 的 becomeFirstResponder 也不会改变任何东西。