2011-01-04 8 views
0

UITextFieldを拡張して、私のカスタムmyInputViewを使用できるようにしました。しかし、myInputViewを希望の場所に配置する際に問題があります。 myInputViewのCGRectフレームを設定するために何をしても問題はありません。画面の下部に高さを配置します。UITextFieldから派生したカスタムUIViewコントロールを配置する方法

参照してください。スクリーンショット:あなたは写真で見ることができるように

http://lh3.ggpht.com/_h3ntmj5-XE8/TSK_zj6GfcI/AAAAAAAAAv8/wNWvuXS5Qk8/s640/Screen%20shot%202011-01-03%20at%2010.33.00%20PM.png

逆に数字パッドは私のカスタムinputViewですが、私は、画面の中央に向かって、それを配置することができるようにしたいです。

MyTextField.h

@interface MyTextField : UITextField { 
    UIView *myInputView; 
} 
@property (nonatomic, retain) IBOutlet UIView *myInputView; 
@end 

MyTextField.m

@implementation MyTextField 
@synthesize myInputView; 

- (UIView *)inputView { 
    NSLog(@"Return inputView"); 

    CGRect frame = CGRectMake(0, 200, 320, 215); 
    [myInputView setFrame:frame]; 

    return myInputView; 
} 

- (void)dealloc { 
    [super dealloc]; 
    [myInputView release]; 
} 
@end 
+0

明らかに、TextFieldが最初のレスポンダになったときにカスタムのinputViewをカスタムUITextFieldに割り当てると、デフォルトのinputViewを使用しているのと同じ高さに配置されます。 – docchang

答えて

2

あなたは、入力ビューの面でこれを実装していない検討する必要があります。入力ビューを設定すると、システムはキーボードを扱うように扱います。あなたはフレームを設定することはありません、高さだけ。私はUITextFieldを取り除き、その上にUILabelと置き換えて、UIButtonと交換することをお勧めします。カスタムビューをメインビューに追加し、画面外に配置します。ボタンを押すと、カスタム入力ビューを画面にアニメーション表示します。ユーザーが入力を行うと、ラベルを更新するだけです。ファーストレスポンダやUITextField.inputViewはまったく心配しないでください。