【问题标题】:Binding to NSCollectionViewItem crashes Xcode绑定到 NSCollectionViewItem 会导致 Xcode 崩溃
【发布时间】:2011-07-28 23:02:53
【问题描述】:

使用 XCode 4.1 时,每当我尝试使用 CollectionView 时都会遇到崩溃。

这些是我正在做的步骤:

  1. 在新项目中,编辑 MainMenu.nib 文件。
  2. 在窗口中添加一个 NSCollectionView,这也添加了一个 Collection View 项目,以及新视图中的新视图
  3. 添加一个类似 NSTextField 的控件
  4. 选择控件,然后将检查器切换到绑定窗格。
  5. 尝试将某些内容绑定到集合视图项。 在下拉菜单中选择 Collection View Item 后, 出现“内部错误”对话框。尝试从此对话框继续会使 绑定窗格消失,直到您重新启动 XCode

这是否发生在其他人身上,或者只是我遇到的事情? 有没有办法解决这个问题,让我可以在 XCode 或代码中绑定到 Collection View Item(我希望最终绑定到代表对象的值)。

我尝试创建一个自定义 NSCollectionViewItem 子类,该子类使用单独的 nib 文件并将其设置为 NSCollectionView 的 itemPrototype,但后来出现了问题。

【问题讨论】:

    标签: cocoa macos nscollectionview nscollectionviewitem


    【解决方案1】:

    我发现将集合视图项视图拆分为自己的 XIB,然后重新连接连接,以便集合视图项原型加载新的 XIB,这样您就可以在界面构建器中创建绑定而不会崩溃。我按照这些步骤...

    1. 从默认 xib 中删除集合视图项视图。
    2. 创建一个继承自 NSCollectionViewItem 的新视图和 XIB。
    3. 在新视图中创建您的收藏视图项。
    4. 将字段绑定到新视图的文件所有者。
    5. 返回集合视图 xib,更新集合视图项的属性以加载新 xib 的 bin 名称。

    我不确定它是否比以编程方式执行更快,但它确实允许您在不编写代码的情况下管理绑定。我现在有一些应用程序以这种方式工作。

    【讨论】:

    • 能否提供一些示例代码?我不明白这个:(
    • 我在这里写了一个完整的例子:comelearncocoawithme.blogspot.com/2011/08/…
    • @Iain,写得真好!这正是我所做的,希望它能帮助 GarethPrice。
    • 这很漂亮,@Iain。非常感谢。
    【解决方案2】:

    我找到了一个临时解决方法:

    选择“Collection View Item”,在“Attributes Inspector”→“View Controller”设置下,将“Nib Name”设置为“MainMenu”。

    完成此操作后,它不会崩溃,并且您可以设置绑定。构建应用时,请务必清除“Nib Name”设置。

    【讨论】:

      【解决方案3】:

      是的,我也可以确认这个错误,即使在 Interface Builder 3 上也是如此。

      唯一的解决方法是以编程方式进行绑定:

      [textField bind:@"value" toObject:collectionViewItem withKeyPath:@"representedObject.foo" options:nil];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-07
        • 2011-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-03
        相关资源
        最近更新 更多