2012-04-28 69 views
1

我有一个UITextField的子类,并希望能够将其添加到IB中的视图。我所做的是添加UITextField,并将其类更改为Inspector的Identity选项卡中的我的子类。但我只能在视图上看到UITextField。UIView的子类。如何通过Interface Builder添加?

代码:

@interface ExtendedTextField : UITextField { 
} 

//implementation 


@implementation ExtendedTextField 

- (void)baseInit 
{ 
    UIImage * curImage = [UIImage imageNamed:@"tfbg.png"]; 
    [self baseInitWithImage : curImage]; 
} 

- (void)baseInitWithImage : (UIImage *) aImage 
{ 
    aImage = [aImage stretchableImageWithLeftCapWidth:29 topCapHeight:29]; 
    self.background = aImage; 
    self.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 

    UIView * curLeftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, self.frame.size.height)]; 

    self.leftView = curLeftView; 
    self.rightView = curLeftView; 
    [curLeftView release]; 
    self.leftViewMode = UITextFieldViewModeAlways; 
    self.rightViewMode = UITextFieldViewModeAlways; 
    [self setTextColor:[UIColor greenColor]]; 
} 

- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 
    [self baseInit]; 
} 

/* 
- (id)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 
    if (self) { 
     [self baseInit]; 
    } 
    return self; 
} 
*/ 

- (id)initWithFrame:(CGRect)frame { 
    self = [super initWithFrame:frame]; 
    if (self) 
    { 
     [self baseInit]; 
    } 
    return self; 
} 

- (id)initWithFrame:(CGRect)frame withImage:(UIImage*)aImage 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     [self baseInitWithImage : aImage]; 
    } 
    return self; 
} 

- (void)dealloc { 
    [super dealloc]; 
} 


@end 

编辑:我注意到几件事情:

- 如果我把[超级initWithFrame:方法...]而不是[超级的initWithCoder:...]内

(ID)的initWithCoder:(NSCoder *)aDecoder

它工作得很好。

- 现在我正在使用awakefromnib而不是initwithcoder,并且唯一在textfield中被更改的是textColor。 有人可以解释为什么这样吗?

解决方案我需要将边框样式设置为无。 BS覆盖bg图像。

回答

1

在Xcode中显示您的.xib时,显示右窗格,选择您的视图,然后在第三个选项卡中,将Class更改为您希望的任何内容。

+0

正如我所说,我在“视图标识”选项卡中将类设置为我想要的。它没有帮助 - initWithCoder不会被调用。 – Sergey 2012-04-28 11:30:47

+0

你可以发布一个示例项目吗? – 2012-04-28 12:35:23

相关问题