[英]NSCollectionView, Swift 4 - Cannot invoke “register”
Can anyone suggest how to solve this NSCollectionView
issue? 任何人都可以建议如何解决这个
NSCollectionView
问题? Converted from Swift 3 to Swift 4 and magic started happening :) 从Swift 3转换为Swift 4并且魔术开始发生:)
Code: 码:
let item = NSNib(nibNamed: NSNib.Name(rawValue: "MACollectionViewItem"), bundle: nil)
collectionView.register(item, forItemWithIdentifier: "CollectionViewItem")
Error for the second line: 第二行错误:
Cannot invoke '
register
' with an argument list of type'(NSNib?, forItemWithIdentifier: String)'
无法使用类型
'(NSNib?, forItemWithIdentifier: String)'
的参数列表调用'register
'(NSNib?, forItemWithIdentifier: String)'
In Swift 4, you need to use NSUserInterfaceItemIdentifier
instead of a String
to identify a user interface element. 在Swift 4中,您需要使用
NSUserInterfaceItemIdentifier
而不是String
来标识用户界面元素。
You should define static constants for identifiers and reference them when registering nibs. 您应该为标识符定义静态常量,并在注册nib时引用它们。
Example: 例:
extension NSUserInterfaceItemIdentifier {
static let collectionViewItem = NSUserInterfaceItemIdentifier("CollectionViewItem")
}
collectionView.register(item, forItemWithIdentifier: .collectionViewItem)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.