diff --git a/Persephone/Views/AlbumItem.swift b/Persephone/Views/AlbumItem.swift index eadd9de..b9f4071 100644 --- a/Persephone/Views/AlbumItem.swift +++ b/Persephone/Views/AlbumItem.swift @@ -9,7 +9,9 @@ import Cocoa class AlbumItem: NSCollectionViewItem { - let albumCoverBorderColor = NSColor.init(calibratedWhite: 1, alpha: 0.1) + let borderColorLight = NSColor.black.withAlphaComponent(0.1).cgColor + let borderColorDark = NSColor.white.withAlphaComponent(0.1).cgColor + var observer: NSKeyValueObservation? override func viewDidLoad() { super.viewDidLoad() @@ -18,7 +20,13 @@ class AlbumItem: NSCollectionViewItem { albumCoverView.wantsLayer = true albumCoverView.layer?.cornerRadius = 3 albumCoverView.layer?.borderWidth = 1 - albumCoverView.layer?.borderColor = albumCoverBorderColor.cgColor + setAppearance() + + if #available(OSX 10.14, *) { + observer = NSApp.observe(\.effectiveAppearance) { (app, _) in + self.setAppearance() + } + } } func setAlbum(_ album: MPDClient.Album) { @@ -26,6 +34,17 @@ class AlbumItem: NSCollectionViewItem { albumArtist.stringValue = album.artist } + func setAppearance() { + if #available(OSX 10.14, *) { + let darkMode = NSApp.effectiveAppearance.bestMatch(from: + [.darkAqua, .aqua]) == .darkAqua + + albumCoverView.layer?.borderColor = darkMode ? borderColorDark : borderColorLight + } else { + albumCoverView.layer?.borderColor = borderColorLight + } + } + @IBOutlet var albumCoverView: NSImageView! @IBOutlet var albumTitle: NSTextField! @IBOutlet var albumArtist: NSTextField!