为了快速模拟UI,我希望能够将按钮拖到界面构建器中的视图上,然后将该按钮的连接拖动到单击它时应该出现的视图。
UIButton的子类在IB中使用有点不方便,所以我更喜欢将行为添加到UIButton本身。不幸的是,似乎在一个类别中创建的出口在IB中不可见:
@interface UIButton (myextensions) {
IBOutlet UIView *outletDestination;
}
@end
可以通过这种方式添加额外的商店吗?
答案 0 :(得分:2)
可以通过这种方式添加额外的商店吗?
不。您不能通过在类别中声明它们来添加实例变量。
但是,您可以添加属性,并且可以将IBOutlet
放在属性上,这样就可以通过这种方式添加插件。使用现代运行时(iPhone上唯一可用的运行时),属性可以添加实例变量。
如果您打算为该属性创建一个自定义访问器(我必须使用@synthesize
),我认为您不能这样做,但听起来这对您的情况并不重要:您是只是模拟UI,所以你不打算编写自定义访问器。
或者,您可以在“库”面板的“类”选项卡上创建IB本身的出口。在那里选择一个类,然后在下面的窗格中选择Outlets选项卡,然后在列表中添加一个插座。
您需要为其他解决方案打开一个笔尖,否则不会显示任何类。这是因为它的上下文敏感:Mac nib将具有AppKit类(如NSButton),而iPhone nib将具有UIKit类。