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