ios - 如何访问父类(super class)中声明的 IBOutlets?

标签 ios xcode interface-builder ibaction iboutlet

我目前正在重构几个共享一些 IBOutletIBAction 方法的 View Controller 。我将 socket 声明和 IBAction 方法移动到一个父类(super class)中,将它们从子类中删除。

现在,当我打开 Interface Builder 时,我发现我看不到父类(super class)中声明的导出或操作。连接仍然存在,因为我在重构之前将它们连接起来,但它们是灰色的。 (重要的是要注意连接也可以工作,因为我的 Action 是在按下按钮时触发的,并且我的 socket 已正确修改。)

问题是,如何让界面生成器识别父类(super class)的导出?这可能吗?如果不可能,你们都有什么建议?

(只是为了好玩,这是我的父类(super class)头文件:)

@interface TFMainViewController : UIViewController {
    UIImageView *logoImage, *thinkfunImage;
    UIButton *buyFullButton;        
}

@property (nonatomic, retain) IBOutlet UIImageView *logoImage, *thinkfunImage;
@property (nonatomic, retain) IBOutlet UIButton *buyFullButton;

-(IBAction) buyFullVersion;

@end

编辑:如果有人想知道,我正在使用 Xcode 和 IB 3.2.5,以及 iOS 4.2 SDK。

最佳答案

直到大约一个小时前,我才意识到甚至可以连接到界面生成器中的父类(super class)。由于这是我能找到的关于如何执行此操作的唯一问题,因此即使这个问题很旧,我也会添加我的答案。我的回答是关于 Xcode 4,而不是 Xcode 3。

据我所知,您无法使用助理编辑器连接到父类(super class)中的导出,但您可以通过单击 IB 中的“文件所有者”来连接。这应该显示 Utilities->Connections Inspector 中的所有 socket 。然后,您可以按住 Ctrl 键并单击检查器中的导出(单击“+”号),并将其拖到您在 IB 中的 View 中。

关于ios - 如何访问父类(super class)中声明的 IBOutlets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431881/

相关文章:

iphone - 您可以将 openID 用作 iphone 应用程序的单点登录吗?

arrays - 使用 Sections 实现 TableView 并使用结构中的数据填充它

ios - 如何在 iOS 8 启动屏幕文件中设置导航栏颜色?

ios - SpriteKit 中的多个按钮

ios - (Swift) 如何从不同的类中引用一个对象的属性?

ios - 当前OpenInMenuFromBarButtonItem : doesn't cause menu to appear

ios - Xcode 11.4 - 终端介绍

iphone - 如何在 MKMapView 上绘制当前位置到所需位置之间的路线?

ios - Storyboard困惑 : UITextView and UIView not visible, UITextFields 不可编辑?

iOS - UIBarButtonItem 标识符 - 创建 "settings"齿轮按钮的选项