You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.3 KiB
36 lines
1.3 KiB
// Copyright © 2015 Abhishek Banthia |
|
|
|
import Cocoa |
|
|
|
class HourMarkerViewItem: NSCollectionViewItem { |
|
static let reuseIdentifier = NSUserInterfaceItemIdentifier("HourMarkerViewItem") |
|
|
|
@IBOutlet var hourLabel: NSTextField! |
|
|
|
func setup(with hour: Int) { |
|
var dateComponents = DateComponents() |
|
dateComponents.hour = hour |
|
|
|
if let newDate = Calendar.autoupdatingCurrent.date(byAdding: dateComponents, to: Date().nextHour) { |
|
let dateFormatter = DateFormatterManager.dateFormatterWithFormat(with: .none, |
|
format: "HH:mm", |
|
timezoneIdentifier: TimeZone.current.identifier, |
|
locale: Locale.autoupdatingCurrent) |
|
|
|
hourLabel.stringValue = dateFormatter.string(from: newDate) |
|
} |
|
} |
|
|
|
override var acceptsFirstResponder: Bool { |
|
return false |
|
} |
|
} |
|
|
|
extension Date { |
|
public var nextHour: Date { |
|
let calendar = Calendar.current |
|
let minutes = calendar.component(.minute, from: self) |
|
let components = DateComponents(hour: 1, minute: -minutes) |
|
return calendar.date(byAdding: components, to: self) ?? self |
|
} |
|
}
|
|
|