繁体   English   中英

如何检测何时未选择UITableView表格单元格?

[英]How do I detect when no UITableView table cell has been selected?

我的iPhone应用程序中有开始日期/结束日期功能。 它与iPhone的本机Calendar应用程序类似,不同之处在于没有“全天”选项。 也就是说,用户所能做的就是输入开始时间/日期和结束时间/日期。

该接口是具有两个单元格的简单分组的UITableView。 用户选择“开始”单元格或“结束”单元格(将其变为蓝色),然后使用UIDatePicker更改每个单元格的值。

除了用户可以在表外部单击之外,其他所有工作均按预期进行,这不会导致选择任何表格单元格。 问题是,用户仍在编辑先前选择的单元格。

理想情况下,我将能够限制用户始终选择一个表单元格。 除非如此,否则我将能够检测到未选择任何单元格,因此可以在UIDatePicker编辑任何内容之前对其进行拦截。

您可以从UITableViewDelegate实现willDeselectRowAtIndexPath 返回nil并且不会取消选择该行:

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
    return nil;
}

或者,您可以实现didDeselectRowAtIndexPath并且您会知道它未被选中。 但是您必须将其存储在成员变量中或某个地方:

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath 

从您的问题来看,在同一视图中似乎有一个tableView及其下面的UIPicker。 您可能希望将选择器放在一个单独的视图中,当用户选择一个单元格时,将其推到屏幕上。 使用这种技术,用户肯定将必须选择一个单元以编辑选择器中的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM