AppKit:持续时间选择器视图

时间:2012-04-19 13:50:51

标签: macos cocoa time appkit nsdatepicker

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

2 个答案:

答案 0 :(得分:1)

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

我想我发现了一种适用于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);
}

答案 1 :(得分:0)

您可以使用-[NSDatePicker setDatePickerElements:] method将日期选择器配置为仅显示日期的时间部分。