DateRangePicker 5.0

DateRangePicker 5.0

测试已测试
语言语言 SwiftSwift
许可证 ISC
发布上次发布2021年6月
SPM支持SPM

Daniel Alm维护。




DateRangePicker - 最佳(?)的适用于OS X的日期范围选择器控件

Timing(Mac自动时间/生产力跟踪应用)开发和使用。

The popover for customized date ranges Some possible looks for the control The menu for preset date ranges

用法

只需将日期范围选择器拖放到您的Storyboard或Nib中。当segmentStyle设置为.Separated时,它在工具栏中看起来特别漂亮。如果您希望将选择器居中在工具栏中,我可以推荐使用TAAdaptiveSpaceItem

您可以通过观察startDate和endDate的更改以及为DateRangePickerView控件设置目标并执行动作来监视日期范围的变化。

功能

  • 非常适合在工具栏中使用,但也可以在任何其他位置使用
  • 日期范围预设:“过去7/15/30/90/365天”,“今天/昨天/本周/这个月/本季度/本年”
  • pleasantly显示这些预设以及之前/之后的月份(例如“2015年十月”)
  • “返回”和“前进”按钮可以让您根据当前持续时间移动日期范围,例如早/晚7天,上个月/下一个月/本周/本季度/本年
    • 即通过月份按月递增数据,而不是简单的30天间隔
  • 在弹出窗口中选择完全定制的日期范围(也可以仅使用弹出来使用)
  • 允许你指定不能超过的最小和最大日期
    • 这将在界面中体现——当日期范围达到最小/最大值时,“后退”/“前进”按钮会被禁用
  • 提供了一种复杂的、可序列化的日期范围结构(作为Swift枚举实现),以便你可以在应用启动之间保持其持久性
  • 为NSDate扩展提供了有用的日期计算函数
  • 可以从Objective-C中使用
    • 公开了兼容KVO/KVC的startDate和endDate属性
    • 日期范围的变化也通过NSControl的目标动作模式发送
    • 公开了-dateRangeAsData和-loadDateRangeFromData:方法,这些方法允许你在Objective-C中持久化日期范围
    • NSDate扩展也从NSDate可用
  • 可自定义的分段控件样式
  • 本地化:英语、德语(欢迎添加其他语言!)
  • 代码质量高
    • 遵循Cocoa "最佳实践" (如果您发现任何反模式,请告知)
    • 日期范围结构和日期计算的全面测试覆盖
  • 与Interface Builder兼容(@IBDesignable)
  • 小巧且自包含

缺少什么

  • 当前无法自定义日期预设(但你可以轻松在ExpandedDateRangePickerController中替换它们)
  • “上个月/周/季度/年”和“下个月/周/季度/年”的日期预设目前不可用(但可以轻松添加,您也可以通过选择“这个周/月/季度/年”然后按“后退”/“前进”来访问它们)
  • 发现其他内容?提交一个pull request或联系我吧:-)

兼容性

需要(并且已在OS X 10.9或更高版本上测试过)。在OS X 10.10的工具栏上看起来更好;-)

关于旧NIB的注意事项

如果你的NIB使用旧的frameWithInititation:初始化方法或在使用OS X 10.9时被压缩,则在NSToolbar中的自定义视图会有一个错误。这导致日期范围选择器的大小无法正确初始化。为了避免这种情况,我建议以下步骤:

  • 创建一个空的具有所需大小的自定义视图的示例NSToolbarItem,并添加一个IBOutlet来使用该NSToolbarItem
  • 将选择器作为独立视图添加到NIB中,并添加一个IBOutlet来使用该选择器
  • 在-awakeFromNib中,以编程方式设置工具栏项的视图为选择器

许可

此库在下列ISC许可证下提供,这是两段式的伯克利软件许可协议的一个简化版本。

如果你使用了这个库,请在Twitter上告知我 @daniel_a_a。我还有一个 博客