【问题标题】:NSCollectionView does show nothingNSCollectionView 不显示任何内容
【发布时间】:2015-06-07 01:31:45
【问题描述】:

我已尝试遵循本指南:

Quick Start for Collection Views

在集合视图项中使用 NSImageView。

如果我使用 Image Well 设置图像也不会显示任何内容,如果我通过代码设置数组也不会显示。

所以我尝试以编程方式使用

func representedObject(representedObject: AnyObject)
{
    super.representedObject = representedObject
    photoImageView.image = (representedObject as! NSImage)
    println("\(representedObject)")
}

在集合视图项(子类)中。

如果我不继承 Collection View Item Xcode 告诉我没有原型集,如果我对它进行子类化它会告诉“无法加载 nibName”...(它在故事板中具有正确的身份集)

我无法使用此 Collection View :-(

无论如何,我喜欢绑定...所以我想通过绑定实现正确的结果.. 我检查并重新检查了链接中文档中的每个段落,一切似乎都很好。主要区别在于文档使用应用程序委托,我使用的是视图控制器。

我迅速翻译了 KVC 方法,我认为它们是正确的,因为我知道它们已被调用。他们是:

func insertObject(p: ClientPhoto, inClientPhotoArrayAtIndex index: Int) {
    images.insertObject(p, atIndex: index)
}

func removeObjectFromClientPhotoArrayAtIndex(index: Int) {
    images.removeObjectAtIndex(index)
}

func setClientPhotoArray(a: NSMutableArray) {
    images = a
}

func clientPhotoArray() -> NSArray {
    return images
}

【问题讨论】:

    标签: cocoa cocoa-bindings nscollectionview kvc nscollectionviewitem


    【解决方案1】:

    它们基本上是使用 NSCollectionView 的两种方式。一种是设置itemPrototype属性,另一种是覆盖newItemForRepresentedObject。覆盖方法更灵活,并且具有使用以下技术的优点,您可以在情节提要中创建 nscollectionviewitem 并且所有出口都将正确设置。这是我如何使用它的示例:

    class TagsCollectionView: NSCollectionView {
    // ...
    override func newItemForRepresentedObject(object: AnyObject!) -> NSCollectionViewItem! {
        let viewItem = MainStoryboard.instantiateControllerWithIdentifier("tagCollectionViewItem") as! TagCollectionViewItem
        viewItem.representedObject = object
    
        return viewItem
    }
    

    【讨论】:

    • 非常感谢,现在我可以使用它了 :-) 不过我也想将它与绑定一起使用
    • 太棒了。您可以将我给出的示例与绑定一起使用。什么不适合你?
    • 对。我以为是代码或绑定:p 我必须尝试 :-) 谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 2012-09-29
    • 2020-11-10
    • 2012-04-12
    • 2019-11-11
    • 2017-09-25
    • 2012-08-02
    相关资源
    最近更新 更多