wireguard-apple/Sources/WireGuardApp/UI/macOS/NSTableView+Reuse.swift

18 lines
535 B
Swift

// SPDX-License-Identifier: MIT
// Copyright © 2018-2023 WireGuard LLC. All Rights Reserved.
import Cocoa
extension NSTableView {
func dequeueReusableCell<T: NSView>() -> T {
let identifier = NSUserInterfaceItemIdentifier(NSStringFromClass(T.self))
if let cellView = makeView(withIdentifier: identifier, owner: self) {
// swiftlint:disable:next force_cast
return cellView as! T
}
let cellView = T()
cellView.identifier = identifier
return cellView
}
}