NSCollectionView,Swift 4 - 无法调用 "register"
NSCollectionView, Swift 4 - Cannot invoke "register"
谁能建议如何解决这个 NSCollectionView
问题?从 Swift 3 转换为 Swift 4,魔法开始发生:)
代码:
let item = NSNib(nibNamed: NSNib.Name(rawValue: "MACollectionViewItem"), bundle: nil)
collectionView.register(item, forItemWithIdentifier: "CollectionViewItem")
第二行错误:
Cannot invoke 'register
' with an argument list of type '(NSNib?, forItemWithIdentifier: String)'
在 Swift 4 中,您需要使用 NSUserInterfaceItemIdentifier
而不是 String
来标识用户界面元素。
您应该为标识符定义静态常量并在注册 nib 时引用它们。
示例:
extension NSUserInterfaceItemIdentifier {
static let collectionViewItem = NSUserInterfaceItemIdentifier("CollectionViewItem")
}
collectionView.register(item, forItemWithIdentifier: .collectionViewItem)
谁能建议如何解决这个 NSCollectionView
问题?从 Swift 3 转换为 Swift 4,魔法开始发生:)
代码:
let item = NSNib(nibNamed: NSNib.Name(rawValue: "MACollectionViewItem"), bundle: nil)
collectionView.register(item, forItemWithIdentifier: "CollectionViewItem")
第二行错误:
Cannot invoke '
register
' with an argument list of type'(NSNib?, forItemWithIdentifier: String)'
在 Swift 4 中,您需要使用 NSUserInterfaceItemIdentifier
而不是 String
来标识用户界面元素。
您应该为标识符定义静态常量并在注册 nib 时引用它们。
示例:
extension NSUserInterfaceItemIdentifier {
static let collectionViewItem = NSUserInterfaceItemIdentifier("CollectionViewItem")
}
collectionView.register(item, forItemWithIdentifier: .collectionViewItem)