CocoaExpand
用法
Swift
// custom CellView
class NSTableCellViewOne: NSTableCellView { ... }
// use
let cell = tableView.makeView(for: NSTableCellViewOne.self)
public extension NSTableView {
/// makeView
final func makeView<T: NSTableCellView>(for cellType: T.Type, identifier: String = String(describing: T.self), style: NSTableView.RowSizeStyle = .default) -> T {
if let view: NSTableCellView = makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: identifier), owner: T.self) as? T {
return view as! T;
}
let cellView = T.init()
cellView.identifier = NSUserInterfaceItemIdentifier(rawValue: identifier);
cellView.wantsLayer = true;
return cellView;
}
}
Objective-C 与 Swift
// custom CellView
class NSTableCellViewOne: NSTableCellView { ... }
// use
let cell = NSTableCellViewOne.makeView(tableView: tableView, identifier: identifier, owner: self)
@objc public extension NSTableCellView {
/// 复用NSTableCellView
static func makeView(tableView: NSTableView, identifier: String = String(describing: self), owner: Any) -> Self {
if let view: NSTableCellView = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: identifier), owner: owner) as? NSTableCellView {
return view as! Self;
}
let cellView = self.init()
cellView.identifier = NSUserInterfaceItemIdentifier(rawValue: identifier);
cellView.wantsLayer = true;
return cellView;
}
}
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录中运行 pod install
要求
s.osx.deployment_target = "10.12"
s.swift_version = "5.0"
安装
CocoaExpand 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'CocoaExpand'
作者
shang1219178163, [email protected]
许可
CocoaExpand 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。