首页 > 解决方案 > 无法从 Objective C 中的单独 NSWindow 执行 NSPanel 中的方法

问题描述

我有一个 MacOS Objective C 项目,它有一个父 NSWindow 和一个 NSPanel,其中包含一个 TableView,其委托和数据源是一个名为 TableController 的类。通过从另一个项目中剪切和粘贴,将 Table Controller 放置在 MainMenu.xib 的 Objects 部分中。表控制器不会出现在显示库可见的控件中。用 TableController.m 中的数据填充 TableView 的方法在加载父表单时执行。我可以从 NSPanel 上的按钮执行这些方法,[MetadataView reloadData];其中 MetadataView 是 NSPanel 上的 TableView 控件的出口,定义为@property (weak) IBOutlet NSTableView *MetadataView;通过 ctrl 将 TableView 拖动到 TableController.h 中。

如果我尝试将包含 reloadData 命令的方法设置为类级别而不是实例级别(前缀 + 而不是 -)以允许从父表单访问,我会收到错误“在类方法中访问的实例变量“MetadataView”。

如何通过单击父窗口的按钮来执行包含 reloadData 命令的方法?

标签: objective-cmethods

解决方案


推荐阅读