0

出于某种原因,无法选择我的部分标题中的搜索字段以调出键盘。此外,我的表格视图单元格上没有任何内容,我不确定为什么。我的代码如下:

- (void)viewDidLoad {
  [super viewDidLoad];  

  self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

  self.tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
  self.tableView.delegate = self;
  [self.view addSubview:self.tableView];
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
  [self.searchField resignFirstResponder];

  return NO;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  return 1;
}

- (NSInteger)tableView:(UITableView *)tableView
 numberOfRowsInSection:(NSInteger)section {
  return 8;
}

- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  return 60;
}

- (UIView *)tableView:(UITableView *)tableView
viewForHeaderInSection:(NSInteger)section {

  UIView *customHeader = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];

  // Add search field
  UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(40, 20, 250, 50)];
  field.borderStyle = UITextBorderStyleRoundedRect;
  field.delegate = self;
  [customHeader addSubview:field];

  return customHeader;
}

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  NSString *cellIdentifier;

  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
  if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];

    NSLog(@"i am here");

    UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(40, 20, 250, 50)];
    field.borderStyle = UITextBorderStyleRoundedRect;
    field.delegate = self;
    [cell.contentView addSubview:field];
  }

  return cell;
}
4

2 回答 2

1

我会说它不起作用,因为您没有为该部分指定标题高度。你应该有类似的东西

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
  return 50.0;
}

如果您有多个部分,请确保您只为所需部分执行此操作。

于 2012-06-17T21:38:00.687 回答
0

为什么不使用 nib 文件或情节提要?根据苹果文档,如果您无法从情节提要或 nib 文件加载 uiviewcontroller 的视图,则应覆盖

-loadView

设置视图层次结构的方法。阅读视图管理部分这可能会解决您的搜索字段问题。要解决第二个问题,请设置 cellidentifier

NSString *cellIdentifier = @"Your identifier";

我不认为它可以是零。我希望,我的回答会有所帮助。如果没有,请发表评论。

于 2012-06-17T21:19:52.380 回答