nai*_*der 10 cocoa-touch uiview ios
我需要一些关于如何在iOS中实现下拉列表类型功能的输入.
我有一些解决方案,比如UITableView用于显示文本项列表.(在我的情况下,列表可以是静态的也可以是动态的,所以UITableView对我的情况来说似乎是个不错的选择).但有一点我无法弄清楚如何解雇下拉列表...
假设在视图中的某个位置打开此下拉列表(假设此视图占据整个屏幕).一旦打开,下拉列表应该在我点击视图中的其他位置时被解雇(关闭),就像典型的下拉列表在桌面环境中的工作方式一样.我怎么做?
一种方法是监听touchesBegan视图上的事件,看看下拉列表是否打开 - 这很好,但问题是如果我有像按钮之类的东西,当用户点击其中一个然后我没有收到touchesBegan视图上的输入.
我如何以通用的方式解决这个问题?
jrt*_*ton 19
下拉列表通常使用UIPickerView在iOS中实现.拾取器视图可以设置为文本字段的输入视图,该视图将保持下拉,然后以与键盘相同的方式对屏幕进行动画显示和关闭.
您通常还需要一个UIToolbar,其中包含一个"完成"按钮作为输入附件视图,它显示在选择器上方,如果您没有自动执行此操作,则可以在您做出选择后解除.
您resignFirstResponder可以通过从选择器视图委托方法或完成按钮的操作方法发送到文本字段来删除选择器.
您将工具栏创建为附件视图,如下所示:
accessoryView = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
accessoryView.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneTapped:)];
accessoryView.items = [NSArray arrayWithObjects:space,done, nil];
textField.inputAccessoryView = accessoryView;
Run Code Online (Sandbox Code Playgroud)
这将为您提供右侧的单个"完成"按钮,该按钮连接到名为doneTapped的操作方法:
| 归档时间: |
|
| 查看次数: |
18511 次 |
| 最近记录: |