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

ここでの問題は、textfieldsフレームがUIViewのフレーム内にないことである可能性があります。self.frameにTEXTFIELD_WIDTHを使用するのに、textfield.frameには使用しないのはなぜですか?

また、UITextFieldではなくUIViewをサブクラス化するのはなぜですか?

于 2012-05-04T17:52:12.597 に答える