gpt4 book ai didi

objective-c - UITableViewCell 中的 UITextField 不会成为第一响应者

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:36 28 4
gpt4 key购买 nike

我使用 UITableViewController 来显示 KoreanFood 的详细信息。第一个单元格是一个自定义 UITableViewCell (OverviewCell),带有一个图像和两个 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 中的文本字段设置为 enabled/UserInteractionenabled,委托(delegate)是我的 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 子类中尝试了一些建议,例如 HitTest 或实现 setSelected:/setEditing: 方法。但是这里的 textField 的 becomeFirstResponder 也不会改变任何东西。

最佳答案

View 在被添加到响应者链之前不能成为第一响应者,当 View 被添加为应用程序对象的窗口列表中的窗口中的 View 的 subview 时,这会自动发生。换句话说,你的单元格还没有被添加到 TableView 中,所以它没有连接到任何东西,因此不能成为第一响应者。

尝试从在 TableView 完成加载其单元格后调用的方法发送 becomeFirstResponder。当然,不要这样做:

overviewCell.koreanTitleTF.enabled = NO;

关于objective-c - UITableViewCell 中的 UITextField 不会成为第一响应者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16824962/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com