1

我有一个为 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 上发现了几个类似的问题,但似乎没有一个解决方案适合我。:(

4

1 回答 1

1

这里的问题可能是文本字段框架不在 UIView 的框架内。为什么对 self.frame 使用 TEXTFIELD_WIDTH 而对 textfield.frame 不使用?

另外,为什么子类 UIView 而不是 UITextField?

于 2012-05-04T17:52:12.597 回答