gpt4 book ai didi

ios - 了解 inputView 和firstResponder : How to create a UITableViewCell which shows a UIDatePicker as Keyboard?

转载 作者:行者123 更新时间:2023-11-30 10:24:10 28 4
gpt4 key购买 nike

我想创建一个自定义 UITableViewCell它显示一些日期并显示 UIDatePicker选择时作为键盘。

虽然我发现了几个处理这个问题的主题,但它们都提供了相同的解决方案:添加 UITextField到单元格并设置 UIDatepPickerinputView此文本字段的。

这个解决方案工作正常,但我不喜欢它。这是相当老套的,如果不需要编辑文本,则不必使用 TextField。我所需要的只是一个显示数据的标签和一个用于更改此日期的 DatePicker 键盘。

<小时/>

我尝试过的:

深入研究后我发现 UITableViewCell有自己的inputView它继承自 UIResponder 的属性。但是,我无法覆盖( Cannot override with a stored property 'inputView' )或分配此属性( Cannot assign to property: 'inputView' is a get-only property )。 canBecomeFirstResponder 也是如此。以及必须实现/更改的其他属性,以便让单元格首先工作Responder/inputView。

我想知道如何UITextField已实现,因为这也是 UIResponder子类。

长话短说:

是否可以创建我自己的 UIView (或者更好 UITableViewCell )充当一种输入 View 并显示自定义键盘的子类?

或者使用(隐藏的)TextField 真的是最好的解决方案吗?

最佳答案

正如评论中已经提到的那样,它没有什么“hacky”。这是标准程序。尽管您的输入 View 可能看起来像标签或按钮,但它仍然是一个输入字段,它打开一个类似于使用日期选择器的键盘的对话框。

但是如果你真的不想使用这个,那么还有几种选择。我假设当按下一个单元格(或其一部分)时,日期选择器应该出现在某处。那么答案就非常简单了;创建一个事件,当按下该区域时将触发该事件。您可以使用按钮,您可以使用表格 View 单元格委托(delegate)来检查何时按下行,或者如果您认为它更适合您,您甚至可以添加手势识别器。

无论如何,一旦您举办事件,您就可以在任何您想要的地方展示您的日期选择器。这可以呈现一个新窗口或将其放入 View Controller 中,甚至如果您愿意,也可以放入 TableView 中。

但是无论您自定义什么,都会否定 iOS 设备的 native 逻辑,这可能会困扰某些用户。例如,如果您在选择器显示时没有制作完全相同的动画,那么对于习惯于以原生方式处理事物的用户来说,这可能会看起来很奇怪。

或者也许你可以做得比原生更好,在这种情况下就去做吧。但请注意,您可能有一项艰巨的任务需要完成。动画、触摸事件、关闭日期选择器、重新定位表格 View 以使日期选择器不会与单元格重叠...

关于ios - 了解 inputView 和firstResponder : How to create a UITableViewCell which shows a UIDatePicker as Keyboard?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60169640/

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