`DejalIntervalPicker` is a custom Mac control similar to `NSDatePicker`, but for time intervals or ranges. Features -------- - A custom control with an amount or amount range, units, and stepper. - Like `NSDatePicker`, editing components separately, with a stepper. - Can set minimum and maximum amounts. - Can get/set the interval as a `DejalInterval`, as individual values, or as a `NSTimeInterval`. - Can have either a single amount or a range of amounts. - Can optionally filter the range to ensure the first amount is smaller (or equal to) the second one, or vice versa. - Can control which units to include. - Can navigate between components via Tab and Shift-Tab and left/right arrow keys, or clicking. - Can type amounts just like in the date picker, and units with auto-completion. - Can increment and decrement amounts and units via up/down arrow keys, +/- keys, or the stepper. - Can increment/decrement in steps of 5 via Shift/Option/Ctrl and up/down arrow keys, or Page Up/Down. - Can go to the first/last valid values via Home/End. - Can display a drop-down menu of suggested legal amounts or units via the spacebar or clicking on the selected value. - Supports regular, small and mini sizes. - Supports properties, key-value coding, and bindings. - Supports `IB_DESIGNABLE` and `IBInspectable`, so the picker can be configured in IB. - A demo project is included.
An abstract data model class that can represent subclasses as dictionary or JSON data for saving to disk or over the network. For both OS X and iOS. Features -------- - **DejalObject**: This is an abstract subclass of `NSObject` that adds methods to represent the receiver as a dictionary or JSON data, load default values, track changes, enumerate an array of `DejalObject` instances, and more. - **DejalColor**: A concrete subclass of `DejalObject` to represent a color (for OS X or iOS), enabling it to be stored in a `DejalObject` subclass. - **DejalDate**: Another concrete subclass to represent a date, primarily so it can automatically be represented as JSON. - **DejalInterval**: A subclass to represent a time interval or a range of intervals, including an amount and units, with methods to represent the interval or range in various ways, including as human-readable strings (see also the `DejalIntervalPicker` project for OS X). A demo project is included, showing a subclass of `DejalObject` to store various data types.