2012-05-04 11 views
1

私は自分のテキストフィールドをiphoneでデザインしています。私は私が所望のビューと表情でのUITextFieldを作成する方法カスタムUITextFieldをプログラムで作成しても、キーボードでタップを使用しないでください

- (id)initWithPlaceholder:(NSString*)placeholder position:(CGPoint) position 

を持つクラスに

MYTextField : UIView <UITextFieldDelegate>

を作成することを決めました。次のように

ソースコードは次のとおり

- (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のが見える、ということであるが、テキストフィールドをタップで、キーボードが表示さdoesntの。

紛失しているものはありますか?

PS:私はStackoverflowでいくつかの同様の問題を発見しましたが、解決策のどれも私にとってはうまくいかないようです。 :(

答えて

1

ここでの問題は、なぜself.frameのためではなく、textfield.frameためTEXTFIELD_WIDTHを使用しています。テキストフィールドフレームはUIViewのフレーム内にないことだろうか?

また、なぜサブクラスのUIViewむしろUITextField?

+0

私はUIImageViewを追加しようとしていますが、おそらくそれをもう少しカスタマイズするつもりです。したがって、私はUITextFieldの代わりにUIViewをサブクラス化しました。 – Dexter

+0

ありがとう!私はそれを含むテキストフィールドとビューの両方に同じ幅と高さを割り当てていました。 – Dexter

関連する問題