Dmi*_*hik 1 iphone objective-c interface-builder
我在IB中创建了一个自定义uiview并为它设置了类.
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
@interface myView : UIControl {
IBOutlet UITextView *textView;
}
@end
#import "myView.h"
@implementation myView
- (void)commonInit
{
[textView setText:@"lajsdfklasdfjl"];
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder])
{
[self commonInit];
}
return self;
}
-(id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
[self commonInit];
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
我在IB中将此视图上的textview文本视图与IBOutlet IUTextView*textView相关联.当我在我的UIViewController上拖动此自定义视图时(从IB的库中的类选项卡),视图为空. - (id)initWithCoder:(NSCoder*)aDecoder正在调用但textView为null.怎么了?谢谢
据我记忆,在init中没有正确设置层次结构,因为只能在init完成后设置属性.
你想用
-(void)awakeFromNib
{
[super awakeFromNib];
[self commonInit];
}
Run Code Online (Sandbox Code Playgroud)
相反,initWithCoder:完全删除的东西.
作为旁注,您应该让您的班级名称以大写字母开头.