NSCollectionViewItem 从不实例化

2023-11-26

我在这里有点迷失: 我创建了一个像 colorPicker 一样的按钮:单击它会在弹出窗口中显示一个 collectionView。 我首先使用包含视图+collectionView(嵌入为scrollView+clipView)的nib fil来完成。 这些东西工作得很好。

由于 nib 文件非常简单(并且为了提高以编程方式设计视图的编码技能),我决定摆脱 nib 文件并在代码中编写缺失的部分。 问题是,除了 collectionView 的内容之外,我设法完成了工作。经过深入调查,该方法内部似乎:

func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem

它应该管理数据源、方法

collectionView.makeItem(withIdentifier: String, for: IndexPath)

不起作用。事实上,在:

let item = collectionView.makeItem(withIdentifier: ColorPickerPopover.itemIdentifier, for: indexPath)

项目未初始化,正如调试器在我介入时所说的那样(不是零,未初始化的)。显然, makeItem 方法永远不会实例化我创建的子类中的任何 collectionViewItem 。 标识符很好,并且调用了 collectionView.register 函数,就像在 nib 版本中一样,因为两个项目在这些方面是相同的。 makeItem 函数根本不调用我子类化的 NSCollectionViewItem 的 loadView 方法。

有什么线索吗?

Josh


随着collectionView.makeItem(withIdentifier:for:)方法,您首先需要使用集合视图注册类或 nib 文件:

使用类

Use register(_:forItemWithIdentifier:)(第一个参数接受AnyClass?)

collectionView.register(MyCustomCollectionViewItemSubclass.self, forItemWithIdentifier: "SomeId")

使用 Nib 文件

Use register(_:forItemWithIdentifier:)(第一个参数接受NSNib?).

let nib = NSNib(nibNamed: "MyCollectionViewItem", bundle: nil)!
collectionView.register(nib, forItemWithIdentifier: "SomeId")

关键是:在你的 Nib 文件上,你还必须确保你有一个NSCollectionViewItem添加到场景中。您还必须将对象的类设置为您的子类才能使其工作(您可以在检查器面板上设置它)。

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSCollectionViewItem 从不实例化 的相关文章

  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • 如何在 Swift 中获取字典中最后输入的值?

    如何获取 Swift 字典中最后输入的值 例如 我如何从下面获取值 CCC var dictionary Dictionary
  • 在真实设备上展示测试广告

    这是我的代码 let request GADRequest request testDevices kGADSimulatorID XXXX2F32d69CCA859FFB559D0FEA3CF6483D08A6 adView load r
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 如何在 MacBook Pro 上的 Docker 容器内运行 tkinter?

    我正在尝试运行一个使用以下命令的 python GUI 应用程序tkinter我的 MacBook Pro 上的 docker 容器内的模块 所以我安装了XQuartz https www xquartz org 并跟随本教程 https
  • 在 Mac 上使用 Eclipse 进行 C++ 调试器

    当我最终设置我的 mac 来使用 eclipse 后 我无法调试 我尝试通过谷歌寻求帮助 但没有一个答案对我有用 所以 我需要有人帮助我在 eclipse 上安装和使用 c c 调试器 我安装了 Xcode 5 0 感谢您的帮助 Roy 您
  • Sqlite代码28“文件在打开时重命名”

    这是一个推论这个问题 https stackoverflow com questions 27784704 sqlite deadlock across multiple threads with different files nored
  • Git 2.2.x 无缘无故更新旧包文件的时间戳

    Git 2 2 0 和 2 2 1 似乎修改了旧的时间戳 git objects pack pack pack偶尔会无缘无故地文件 它只是改变时间戳 内容是相同的 调试这一点很困难 因为它似乎很少进行更改 我在 2 2 0 之前的任何 Gi
  • iOS 13 beta 外部屏幕上的 OverscanCompensation

    我正在测试一个应用程序的测试版 但遇到了外部屏幕的问题 我们看到应用程序周围有黑色边框 我们之前可以通过设置来纠正它overscanCompensation to none但在 iOS 13 中 该设置根本没有任何效果 我们曾经看到一个错误
  • iPad - 无法在框架内滚动

    我无法滚动 iPad Safari 中框架内调用的 pdf 我已经尝试过两件事 2 指滚动 使用对象 嵌入代替框架 但这是行不通的 事实上我已经尝试了很多东西 溢出 高度等等 请帮我 先感谢您 根据这篇文章http support appl
  • 如何防止 RealmSwift 列表中出现重复项?

    如何防止向列表中添加重复项RealmSwift 我有我的User作为领域对象 但真正的数据源是服务器 只是使用领域在本地缓存用户 当我从服务器获取当前用户数据时 我想确保存储在领域中的用户拥有来自服务器的所有播放列表 以及它们的曲目列表等
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • NSDateFormatter 返回错误的日期 + Swift

    Code let dateString 2016 04 02 var formatter NSDateFormatter NSDateFormatter formatter timeZone NSTimeZone abbreviation
  • iOS 11 安全区域布局指南向后兼容性

    启用安全区域布局指南是否与 iOS 11 以下版本兼容 我设法使用新的安全区域布局指南并保持与 iOS 9 和 iOS 10 的向后兼容性 编辑 正如 NickEntin 的评论所指出的 此实现将假定存在状态栏 但在 iPhone X 的横
  • 在另一种语言中使用 dateFormatter [重复]

    这个问题在这里已经有答案了 我正在运行一段返回的代码nil在具有不同语言设置的 iPhone 上运行时 代码示例如下所示 let dateFormatter DateFormatter dateFormatter dateFormat MM
  • 将 Xcode 的测试类助理编辑器与 Swift 类结合使用

    在 Xcode 中工作时 在助理编辑器中提取单元测试用例通常会很好 目前 我一直在手动选择测试文件 但我看到助理编辑器有一个选项Test Classes 我试图让这个选项自动提取我的测试文件 但我似乎无法让它工作 是否需要某种配置 它不适用
  • 为什么我的 tableView 函数运行了 3 次?

    我有一个 UITableView 并且有执行它所需的方法之一 func tableView tableView UITableView numberOfRowsInSection section Int gt Int println sec
  • 显示键盘时如何在 TextView 下方添加更多填充

    当我在 ScrollView 中有 TextField 并点击它时 键盘会按预期显示 但似乎 TextField 已向上移动到足以显示输入区域 但我希望移动到足够的位置 以便整体可见 否则它看起来像是被剪裁了的 我找不到改变这种行为的方法
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector
  • XCode 4.2.1 在 Lion 10.7.2 上启动时崩溃

    这周我买了大约 10 年来的第一台 Mac 是的 这是一台二手 Mac Pro 2x2GHz 双核 Xeon 2GB RAM 它全新安装了 Mac OS X Lion 10 7 2 我只安装了 OmniOutlner Pro Textmat

随机推荐

  • 矢量与数组性能

    在另一个线程中 我开始了关于向量和数组的讨论 其中我主要扮演魔鬼代言人的角色 按下按钮 然而 在这个过程中 我偶然发现了一个让我有点困惑的测试用例 我想对此进行一次真正的讨论 关于我因扮演魔鬼代言人而受到的 虐待 开始一个真正的测试用例 现
  • 在 Powershell 中使用参数调用 Invoke-Expression

    我用 C 编写了一个 powershell 模块 其中包含一堆 cmdlet 例如 Add VM 这些 cmdlet 会访问 API 并拉回数据 但为了与产品的 ssh CLI 保持一致 我编写了一个名为 newtask 的函数 它接受 a
  • Heroku Postgres:此连接已关闭

    我开发了一个小型 Heroku Grails Postreg 应用程序 部署后 20 分钟左右它就会正常工作 之后我总是得到 This connection has been closed Stacktrace follows Heroku
  • 从 Eclipse 查看本机代码

    我有一个使用本机方法调用的 java 应用程序 有没有办法在 eclipse 中查看此代码 我可以获得这个本机库的源代码 但不知道如何在 IDE 中链接 如果有人告诉我如何调试这个本机方法 也会很有帮助 不是完整的答案 但 Eclipse
  • 如何在 Javascript 中使用循环生成事件处理程序? [复制]

    这个问题在这里已经有答案了 例如 我有 10 个从 AJAX 响应生成的 a 标签 a href b1 a a href b2 a a href b3 a a href b4 a a href b5 a a href b6 a a href
  • 如何监听VueJS中的所有自定义事件?

    在我的 VueJS 应用程序中 我有一个 Vue 实例 我将其用作事件总线 用于在组件之间发送数据 就是这样 import Vue from vue export const EventBus new Vue 然后在我的组件中导入 Even
  • 将多个选择器与伪类关联

    有没有办法让多个选择器与伪类关联 换句话说 我想让它在悬停或聚焦于锚点 图像或按钮时 它们周围会有一个特殊的边框 我尝试过这个 在黑暗中拍摄 a button img hover a button img focus border 2px
  • 隐式使用 Scala 实现类型相等

    我一直在阅读一些有关 Scala 类型级编程的内容 主要是 Apocalisp 博客 还有 Alexander Lehmann 的 YouTube 演讲 我有点坚持我认为可能非常基本的事情 即使用隐式比较两种类型 如下所示 implicit
  • 使用本机滚动时使滚动条在离子内容中可见

    我在用overflow scroll true 让 ionic 使用原生滚动
  • 如何获取sbt多项目构建中的子项目路径

    我正在尝试获取 sbt 中多项目构建中子项目的位置 但我只能获取根项目目录 lazy val copyToResources taskKey Unit copies the assembly jar private val rootLoca
  • iOS 设备和蓝牙

    有谁知道外部蓝牙设备和 iPhone iPad 4S 及以上 之间的最大数据传输速率 我读到 BT3 0 中的增强数据速率为 24Mbs iPhone 可以支持吗 使用 BT4 0 LTE 的最大数据量是多少 多谢你们 iPhone iPa
  • 使用 SQLDataReader 代替记录集

    我对此很陌生并且有这个问题 我可以使用 SQLDataReader 代替 Recordset 吗 我想在 SQLDataReader 中实现以下结果 Dim dbConn As New ADODB Connection Dim rs As
  • AngularJS 和 jQuery 冲突

    我用 AngularJs 和 jQuery 编写了一些代码 只有一种方法有效 要么是 AngularJs 要么是 jQuery jQuery 和 AngularJs 似乎互相冲突 一旦我包含这两个库 它们就不再正常工作 如果我只包含其中之一
  • Hadoop 减速器在内存中的值?

    我正在编写一个 MapReduce 作业 最终可能会在减速器中产生大量值 我担心所有这些值都会立即加载到内存中 底层实现是否Iterable
  • enum 的字段必须是可序列化的吗?

    我正在通过 SonarQube 版本 5 1 分析 Java SE 7 项目 然后 我面临squid S1948在下面的代码上 可序列化 类中的字段应该是瞬态的或可序列化的 可序列化类中的字段本身必须是可序列化的或瞬态的 即使该类从未显式序
  • 错误:渲染问题找不到以下类 android.support.v7.internal.widget.ActionBarOverlayLayout

    我只是 Android 应用程序开发的初学者 当我在Android Studio 1 1 0上创建一个新项目时 它放弃了这个错误 渲染问题 找不到以下类 android support v7 internal widget ActionBa
  • sc.exe config“服务名称”obj=“域\用户”密码=“密码”不起作用

    我想从 cmd 设置服务的密码 我有选择 sc exe config 服务名称 obj 域 用户 密码 密码 当我执行时 它显示 SC 更改服务配置成功 如果我启动服务 我正进入 状态 Windows 无法在本地计算机上启动 service
  • SQL Server 2012 中的行级安全性

    SQL Server 2012 中的行级安全性有什么新变化吗 在 2008 年及以下 唯一的方法是使用 Views 2012 年他们宣布某物 like Row Level Security in Tabular Models 这与表上的 R
  • NSCollectionViewItem 从不实例化

    我在这里有点迷失 我创建了一个像 colorPicker 一样的按钮 单击它会在弹出窗口中显示一个 collectionView 我首先使用包含视图 collectionView 嵌入为scrollView clipView 的nib fi
  • 如何在 Nvidia Shield 上正确计时 Android RenderScript 代码

    我在 RenderScript 中实现了一个小型 CNN 想要分析不同硬件上的性能 在我的 Nexus 7 上 时间有意义 但在 NVIDIA Shield 上则不然 CNN LeNet 采用队列中的 9 层实现 计算按顺序执行 每一层都是