objective-c – NSPredicateEditorRowTemplate用于日期比较

objective-c – NSPredicateEditorRowTemplate用于日期比较,第1张

概述我正在构建一个NSPredicateEditor,我希望能够进行高级日期比较. 我意识到我可以用一个NSDateAttributeType的rightExpressionType构建一个NSPredicateEditorRowTemplate,但是我想要构建的谓词需要比它更先进. 例如,我需要基本的比较,如: > dateKeypath<一个约会 > dateKeypath< = aDate > 我正在构建一个nspredicateeditor,我希望能够进行高级日期比较.

我意识到我可以用一个NSDateAttributeType的rightExpressionType构建一个nspredicateeditorRowTemplate,但是我想要构建的谓词需要比它更先进.

例如,我需要基本的比较,如:

> dateKeypath<一个约会
> dateKeypath< = aDate
> dateKeypath = aDate
> dateKeypath!= aDate
> dateKeypath>一个约会
> dateKeypath> = aDate

这些基本比较很容易实现,我有这些工作.但是,我还需要进行比较,例如:

> dateKeypath isInTheLast n天(或周,月,年)
> dateKeypath isnotinTheLast n天(或周,年)
> aDate和anotherDate之间的dateKeypath

我怎样才能实现这些比较?我知道我需要创建一个自定义的nspredicateeditorRowTemplate,但我还没有找到任何关于如何实现这样的清晰文档.

编辑
奖励积分也可用于知道如何使这些比较成为完整的日期 – 时间(年 – 月 – 日 – 时 – 分 – 秒)比较(因为NSDateAttributeType仅具有年 – 月 – 日的粒度).

解决方法 回想起来,这个答案似乎有些明显:

我实际上描述了3个谓词编辑器行模板,而不是一个.这三个模板是:

> dateKeyPath [&lt ;,< =,=,>,> =,!=] [NSDatePicker]
> dateKeyPath [inTheLast,notinTheLast] [NSTextFIEld] [NSPopUpbutton]
> dateKeyPath [between] [NSDatePicker]“和”[NSDatePicker]

如果您构建这三个谓词编辑器行模板并将它们提供给predicateEditor,编辑器将意识到它们都使用相同的dateKeyPath,然后显示然后将所有 *** 作符压缩到一个d出按钮中.然后,它将根据选择的运算符将运算符右侧的实际视图切换出来.

编辑

对于奖励积分:您可以通过覆盖templateVIEws方法,从super检索templateVIEws,以及在相应的选择器上设置datePickerElements来修改日期选择器的精度.

编辑2010年11月24日

对于再次遇到此问题的人,我写了一些关于创建自定义nspredicateeditorRowTemplates的博客文章:

> Creating a simple NSPredicateEditorRowTemplate
> Creating an advanced NSPredicateEditorRowTemplate(这个显示了如何进行inTheLast和inNext行模板)

总结

以上是内存溢出为你收集整理的objective-c – NSPredicateEditorRowTemplate用于日期比较全部内容,希望文章能够帮你解决objective-c – NSPredicateEditorRowTemplate用于日期比较所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1018239.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存