macos - 基于 View 的 NSTableView 中的 NSPopupButton

标签 macos cocoa core-data nstableview nspopupbutton

我正在使用核心数据和最新的 XCode。我有一个基于 View 的表,其中一列中有 NSPopupButtons 。该表有一个数组 Controller ,用于从实体 A 获取数据。还有另一个用于实体 B 的数组 Controller 。实体 B 应该填充弹出按钮项。

表格外的NSPopupButton可以填充没有问题,所以这一定是表格相关的问题!

我应该如何填充表格中某列内的弹出按钮?

Part of the table, with the Popup Button in place.

最佳答案

您可以执行以下操作:

  1. 将表格 View 的行高增加到 22 像素或更大。
  2. 绑定(bind)到 objectValue.menuValues(显然是您添加到 objectValue 中的内容)。
  3. NSPopupButton 应放置为 NSTableCellView 的 subview 。

这样,只要您的 objectValue 具有能够填充 NSPopupButton 菜单的绑定(bind),您就不需要直接访问它。从这里,您还可以将selector导出设置为您的委托(delegate)/ View Controller 的类,并使用一些漂亮的superview挖掘来找到持有它的NSTableCellView,并从那里进行操作。

我知道这很复杂,但它几乎是零代码。曾几何时,我曾经看不起 IB,因为它太“n00b”,但 Bindings 使它成为一个非常强大的工具。

关于macos - 基于 View 的 NSTableView 中的 NSPopupButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14003452/

相关文章:

objective-c - 如何在 Cocoa 中从 MP3 文件中提取 ID 标签?

macos - 当使用 Cocoa 应用程序从 macOS 卸载应用程序时,有什么方法可以收到通知吗?

iphone - 从 iOS 跳转到 OSX

swift - PresentViewControllerAsSheet 像窗口一样显示

xcode - 如何从 Playground 中的 Nib 获取 View ?

ios - 使用核心数据完全不相关的错误

iphone - 存储关系时核心数据_NSFaultingMutableSet 中的存储问题

linux - Docker 如何在 macOS 主机下运行 Linux 内核?

objective-c - 如何隐藏/关闭 NSWindowController 及其 View ?

ios - 核心数据 : Does inserting an NSManagedObject manually into managedObjectContext insert its related NSManagedObjects too?