ios - 当用户点击带有 `UITableView` 的单元格时,在 `UITextField` 上添加自动完成列表/表格

标签 ios objective-c uitableview cgrect

我已经实现了一个自动完成表,当用户在我的表中选择模型字段时,它就会显示出来。

但是,我在控制它的显示方式时遇到了问题。我最终希望模型单元格向上滚动到顶部,自动完成表显示在它和键盘之间。我尝试的任何事情都不会导致这张 table 以那种性质行事。

在此示例中,当用户开始键入“F”时,自动完成表显示在标题下

自动完成表被初始化然后隐藏。只有当模型文本字段开始编辑时,它才会显示。

这是创建表格的代码。

 CGRect frameAuto = CGRectMake(0, self.txt_model.frame.origin.y + self.txt_model.frame.size.height, self.view.frame.size.width, self.txt_model.frame.size.height * 3);

    self.autocompleteTableView = [[UITableView alloc] initWithFrame:frameAuto style:UITableViewStylePlain];
    self.autocompleteTableView.delegate = self;
    self.autocompleteTableView.dataSource = self;
    self.autocompleteTableView.scrollEnabled = YES;
    self.autocompleteTableView.hidden = YES;
    [self.view addSubview:self.autocompleteTableView];

我想我需要帮助的是,如何让模型文本字段向上移动到导航栏、显示自动完成表并为键盘留出空间?

更新 -- 将 autocompletetableview 添加为附件 View 可以做到这一点:

创建自动完成表

self.autocompleteTableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
    self.autocompleteTableView.delegate = self;
    self.autocompleteTableView.dataSource = self;
    self.autocompleteTableView.scrollEnabled = YES;
    self.autocompleteTableView.hidden = YES;
    [self.view addSubview:self.autocompleteTableView];

设置文本框

    self.txt_model.delegate = self;
    self.txt_model.inputView = self.autocompleteTableView;
   self.txt_model.inputAccessoryView = self.autocompleteTableView;

文本域代理

-(void)textFieldDidBeginEditing:(UITextField *)sender {
    if(sender == self.txt_model){
        NSLog(@"Moving view up");
       [self.tblDetailsView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:3 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];

    }

在输入表单上显示整个自动完成表。

键盘不存在,文本字段也不存在。

enter image description here

最佳答案

要获得您正在寻找的效果,您可以尝试将其设置为您正在编辑的 UITextField 上的 inputAccessoryView。这会将它直接粘在键盘的顶部。我不确定 UITableView 作为 inputAccessoryView 的效果如何,但它可能值得一试。

self.textView.inputAccessoryView = autocompleteTableView

关于ios - 当用户点击带有 `UITableView` 的单元格时,在 `UITextField` 上添加自动完成列表/表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28652821/

相关文章:

ios - 服务器 IOS 上 MOV 的缩略图

ios - 在 iOS 应用程序中创建 float 菜单

ios - Admob 如何设置 GADBannerView 的 alpha(不透明度)

objective-c - 在 UITableView 问题的顶部添加额外的单元格

objective-c - uint64_t 的容量?

ios - managedContext.insertObject 在 Swift 中调用 `atIndex` 的额外参数?

objective-c - 基于导航的应用程序中屏幕底部的 "Back"按钮

ios - 首次使用后无后端应用程序崩溃

ios - UITableViewCell 运行结束后图片变化

iphone - 使用动画在 UITableView 中添加一个单元格