我为iPhone上的文本字段设计了自定义外观。我决定创建一个类
MYTextField : UIView <UITextFieldDelegate>
我有一个方法
- (id)initWithPlaceholder:(NSString*)placeholder position:(CGPoint) position
创建一个具有所需视图和外观的UITextField。
源代码如下:
- (id)initWithPlaceholder:(NSString*)placeholder position:(CGPoint) position {
if (self = [super initWithFrame:CGRectMake(position.x, position.y, TEXTFIELD_WIDTH, TEXTFIELD_HEIGHT)]) {
UITextField *textField = [[[UITextField alloc] initWithFrame:CGRectMake(10, 200, 300, 40)] autorelease];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.font = [UIFont systemFontOfSize:15];
textField.placeholder = @"enter text";
textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.keyboardType = UIKeyboardTypeDefault;
textField.returnKeyType = UIReturnKeyDone;
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
[textField setUserInteractionEnabled:YES];
textField.delegate = self;
[self addSubview:textField];
}
return self;
}
问题在于,在调用方法时,UITextField是可见的,但在点击文本字段时,键盘不显示。
我有什么遗失的吗?
PS:我在Stackoverflow上发现了几个类似的问题,但没有一个解决方案似乎对我有用。 :(
答案 0 :(得分:1)
这里的问题可能是textfields框架不在UIView的框架内。为什么使用TEXTFIELD_WIDTH作为self.frame而不是textfield.frame?
另外,为什么要将UIView子类化为UITextField?