应用套件:持续时间选取器视图



是否有任何类似于OS X的NSDatePicker视图,但用于选择持续时间(即小时,分钟和秒)而不是整个日期。谷歌搜索没有带来任何有用的东西,我还没有成功地自定义NSDatePicker只适合持续时间 - 我的尝试无法在 12 小时(上午和下午)日期模式和不同的时区下正常工作。

我认为没有任何现成的解决方案,但是使用3个无边框文本字段和几个带有冒号的标签制作自己的解决方案应该不难,所有这些都在NSBox中,旁边有一个步进器。

我想我找到了一种与 NSDate 选择器一起工作的方法。 我不确定为什么其中一些有效,但似乎有必要将区域设置设置为使用 24 小时制的地方,例如日本并为选择器设置日历。我看到的唯一"故障"是输入一些 1 位数字时有点延迟(这是 Apple 在 OS X 10.5 中更改的内容,我认为让编辑器等待您是否要添加第二个数字)。但是,您可以通过跳出字段或单击另一个字段来使其立即更新。 所以这是设置:

self.picker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP"];
    self.cal = [NSCalendar currentCalendar];
    self.cal.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
    self.picker.calendar = self.cal;
    self.picker.timeZone = cal.timeZone;

以下是选取器的操作方法:

    -(IBAction)dpClick:(NSDatePicker *)sender {
    NSDateComponents *comps = [cal components:NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit fromDate:sender.objectValue];
    NSLog(@"hours=%ld  minutes=%ld  seconds=%ld",comps.hour,comps.minute,comps.second);
}
可以使用

-[NSDatePicker setDatePickerElements:] 方法将日期选取器配置为仅显示日期的时间部分。

最新更新