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

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

问题是,如何让界面构建器识别父类(super class)的 socket ?这有可能吗?如果没有,那么大家都推荐什么?

(只是为了好玩,这是我的父类(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一起使用。

最佳答案

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

据我所知,您不能使用助手编辑器连接到父类(super class)中的导出,但是可以通过单击IB中的“文件所有者”来实现。那应该在Utilities-> Connections Inspector中显示所有导出。然后,您可以Ctrl +单击检查器中的导出(单击“+”号),然后将其拖到IB中的 View 中。

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

10-12 00:18