简体   繁体   English

NSCollectionView,Swift 4 - 无法调用“注册”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM