gpt4 book ai didi

iOS 如何实现下拉列表以及如何关闭它?

转载 作者:技术小花猫 更新时间:2023-10-29 10:56:54 25 4
gpt4 key购买 nike

我需要一些关于如何在 iOS 中实现下拉列表功能的输入。

我有一些解决方案,比如使用 UITableView 来显示文本项列表。 (在我的例子中,列表可以是静态的也可以是动态的,所以 UITableView 对我来说似乎是一个不错的选择)。但是我无法弄清楚的一件事是如何关闭下拉菜单...

假设这个下拉列表在 View 中的某处打开(假设这个 View 占据了整个屏幕)。下拉菜单一旦打开,当我点击 View 中的其他地方时应该会被关闭(关闭),就像典型的下拉菜单在桌面环境中的工作方式一样。我该怎么做?

一种方法是监听 View 上的 touchesBegan 事件并查看下拉列表是否打开 - 这很好,但问题是如果我有按钮之类的东西,当用户点击其中一个时我没有在 View 上收到 touchesBegan 输入。

我该如何以通用方式解决这个问题?

最佳答案

下拉列表通常在 iOS 中使用 UIPickerView 实现。选择器 View 可以设置为文本字段的输入 View ,该文本字段将保留下拉菜单,然后以与键盘相同的方式在屏幕上和屏幕外动画。

您通常还需要一个包含“完成”按钮的 UIToolbar 作为输入附件 View ,它出现在选择器上方,如果您没有自动选择,则允许您在做出选择后将其关闭。

您通过向文本字段发送 resignFirstResponder 来删除选择器,无论是从选择器 View 委托(delegate)方法还是完成按钮的操作方法。

您将工具栏创建为附件 View ,如下所示:

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;

这将在右侧为您提供一个“完成”按钮,该按钮连接到名为 doneTapped 的操作方法:

关于iOS 如何实现下拉列表以及如何关闭它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672298/

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