点击 UITextField 在 UITableView 中显示数据
Posted
技术标签:
【中文标题】点击 UITextField 在 UITableView 中显示数据【英文标题】:show data in UITableView on tapping UITextField 【发布时间】:2013-12-19 10:39:12 【问题描述】:如何在UITableview
中获取数据,而不是点击键盘UITextfield
。在UITableview
,如何多选数据。
编辑:-我有一个UITextfield
。点击它时,tableview 应该会弹出其中的数据而不是键盘。 When a row of tableview is selected, then checkmark should appear and that data should be seen in UITextfield
.
【问题讨论】:
您到底想要什么?请用正确的方式写问题。 在 textViewDidBeginEditing 中加载表格视图。 分享您的代码。你试过什么? 您的要求是当用户触摸文本字段时,键盘不应该显示,而是我们需要显示表格视图并在选择表格视图单元格时,数据应该显示在文本字段上? 【参考方案1】:回答你的第一个问题 -
您的键盘将通过使用此代码隐藏。
-(BOOL)textField:(UITextField *)textField shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
if([text isEqualToString:@"\n"])
[textField resignFirstResponder];
return NO;
return YES;
- (void)textFieldDidBeginEditing:(UITextField *)textField
[self.view endEditing:YES];
// load your tableView here.
// Everything must be custom.that is your table view is just like a popup.
第二个问题的答案——
现在的情况是您的表格视图显示在屏幕上。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
NSString *selectedValue = [yourArray objectAtIndex:indexPath.row];
yourTextView.text = selectedValue;
yourTableView.hide = YES;
在选择任何行后,值会显示在 yourTextView 中。但之后您必须隐藏该 tableView。试试这个。也许这会对你有所帮助。
【讨论】:
【参考方案2】:-(void)textViewDidBeginEditing:(UITextView *)textView
[self.view endEditing:YES]; // this will make key board hide
yourTableView.hide = NO; // here show tableview make sure tableview allocated out side and here you will be just showing.
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
yourTextView.text = yourArray[indexPath.row];
yourTableView.hide = YES;
【讨论】:
【参考方案3】:使用 UITextField.inputView 属性。
更多关于这个主题的信息: https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/InputViews/InputViews.html
【讨论】:
以上是关于点击 UITextField 在 UITableView 中显示数据的主要内容,如果未能解决你的问题,请参考以下文章
IQKeyboardManager 在 UITextField 上点击时隐藏键盘
Swift:点击 UITextField 时如何显示 UIPickerView