绑定到 NSCollectionViewItem 会使 Xcode 崩溃

发布于 2024-11-26 18:47:50 字数 576 浏览 1 评论 0原文

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

这些是我正在执行的步骤:

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

这是否发生在其他人身上,还是只是我遇到的情况? 有没有办法解决这个问题,以允许我在 XCode 或代码中绑定到 Collection View Item(我最终希望绑定到 returnedObject 值)。

我尝试创建一个自定义 NSCollectionViewItem 子类,该子类使用单独的 nib 文件并将其设置为 NSCollectionView 的 itemPrototype 但后来事情变得非常错误。

Using XCode 4.1 I've come across a crash whenever I try to use a CollectionView.

These are the steps I'm doing:

  1. From a new project, edit the MainMenu.nib file.
  2. Add an NSCollectionView to the window, which also adds a Collection View
    Item, and a new View In the new View
  3. Add a control like an NSTextField
  4. Select the control, and switch the inspector to the binding pane.
  5. Attempt to bind something to the Collection View Item.
    Once the Collection View Item is selected in the dropdown menu, an
    "Internal Error" dialog appears. Attempting to continue from this dialog makes the
    binding pane disappear until you restart XCode

Does this happen for anyone else or is it just something I'm coming across?
Is there a way to work around it to allow me to bind to the Collection View Item (I want ultimately to bind to the representedObject value) either in XCode or in code.

I attempted to create a custom NSCollectionViewItem subclass that uses a separate nib file and set that as the itemPrototype of the NSCollectionView but things went very wrong then.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

安穩 2024-12-03 18:47:50

我发现将集合视图项视图拆分为自己的 XIB,然后重新连接连接,以便集合视图项原型加载新的 XIB 将允许您在界面生成器中创建绑定而不会崩溃。我按照以下步骤操作...

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

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

I found that splitting the collection view item view into its own XIB and then rewiring the connections so that the collection view item prototype loads the new XIB will allow for you to create the bindings in interface builder without it crashing. I followed these steps...

  1. Delete the collection view item view from the default xib.
  2. Create a new view and XIB inheriting from NSCollectionViewItem.
  3. Create your collection view item in the new view.
  4. Bind the fields to the files owner of the new view.
  5. Back in the collection view xib, update the properties of collection view item to load the bin name of the new xib.

I'm not sure that it's quicker than doing it programmatically, but it does allow you to manage the bindings without writing code. I've got a few apps working this way now.

北斗星光 2024-12-03 18:47:50

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

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

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

I've found a temporary work around:

Select the "Collection View Item" and under the "Attributes Inspector" → "View Controller" settings, set "Nib Name" to "MainMenu".

Once you've done this, it won't crash, and you can set the bindings. Be sure to clear the "Nib Name" setting when building your app.

趁微风不噪 2024-12-03 18:47:50

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

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

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

Yup, I can confirm this bug too, even on Interface Builder 3.

The only workaround is to do the binding programmatically:

[textField bind:@"value" toObject:collectionViewItem withKeyPath:@"representedObject.foo" options:nil];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文