Objective c 用于日期比较的NSPredicateEditorRowTemplate
我正在构建一个Objective c 用于日期比较的NSPredicateEditorRowTemplate,objective-c,cocoa,date,nspredicateeditor,Objective C,Cocoa,Date,Nspredicateeditor,我正在构建一个nspredicateditor,我希望能够进行高级日期比较 我意识到我可以用NSDateAttributeType的rightExpressionType构建一个NSPredicateEditorRowTemplate,但是我想要构建的谓词需要比这更高级 例如,我需要进行如下基本比较: dateKeypath=aDate 这些基本的比较是很容易实现的,我有这些工作。但是,我还需要做如下比较: dateKeypath为n天(或周、月、年) 日期键路径不在最近n天内(或周、月、
nspredicateditor
,我希望能够进行高级日期比较
我意识到我可以用NSDateAttributeType
的rightExpressionType
构建一个NSPredicateEditorRowTemplate
,但是我想要构建的谓词需要比这更高级
例如,我需要进行如下基本比较:
dateKeypath
dateKeypath aDate
dateKeypath>=aDate
dateKeypath为n天(或周、月、年)
(或周、月、年)日期键路径不在最近n天内
- aDate和另一个日期之间的日期键路径
NSPredicateEditorRowTemplate
,但我还没有找到任何关于如何实现这种功能的清晰文档
编辑
另外,如果您知道如何将这些比较设置为完整的日期时间(年-月-日-小时-分-秒)比较(因为
NSDateAttributeType
仅具有年-月-日粒度)。回顾过去,这个答案似乎有些明显:
我实际上描述了3个谓词编辑器行模板,而不是一个。这三个模板是:
dateKeyPath[=,!=][NSDatePicker]
dateKeyPath[inTheLast,notInTheLast][NSTextField][nspoupbutton]
dateKeyPath[between][NSDatePicker]“和”[NSDatePicker]
dateKeyPath
,然后显示并将其所有运算符压缩到一个弹出按钮中。然后,它将根据选择的操作员将实际视图切换到操作员右侧
编辑
奖励点:您可以通过覆盖templateview
方法,从super
检索templateview,并在相应的选择器上设置datePickerElements
来修改日期选择器的精度
编辑2010年11月24日
对于任何再次遇到此问题的人,我已经写了几篇关于创建自定义NSPredicateEditorRowTemplates
的博客文章:
- (这个演示如何在最后一个和下一个行模板中执行
)
我已经根据苹果工程师的一些代码(和建议)实现了这样一个谓词编辑器模板(以及所有相关代码)。如果有人感兴趣,我可以提供细节等。我的实现非常复杂。是的,我最终也做到了。用你的想法给我发封电子邮件!我很乐意和你分享笔记。当然。我是个新手。我如何给你发电子邮件?我的个人资料有一个到我的主页的链接,主页上有一个电子邮件表单。