2012-03-28 13 views
2

UIViewControllerのサブクラスを作成しました。xibには、カスタムキーボードがあります。私がカスタムキーボードを使用しているのは、10進数のキーが必要で、ネイティブキーボードよりも短くする必要があり、数字だけを持つ必要があるからです。2種類のビューにカスタムキーボードを使用する

ネイティブキーボードのように、途中までしか表示したくないので、モーダル表示が機能しません。

私は同じxibに別のビューとしてそれを行うことができたが、私は2つの異なるビューはので、私は一度だけではなく、それを作成したい私のkeyboard-を使用する別のxibからそれを呼び出すするかどうかはわかりません両方のxibに別のビューとして追加してください。

別のビューを同じxibに追加するとコードがどのように見えますか? (できます)。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    if (!calcVisible) { 
     [calculatorView setFrame:CGRectMake(0, 416, 320, 200)]; 
     [self.view addSubview:calculatorView]; 

     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:0.3f]; 
     [calculatorView setFrame:CGRectMake(0, 216, 320, 200)]; 
     [UIView commitAnimations]; 

     calcVisible = YES; 
    } 

しかし、どのように私は別のxibからcalculatorViewを初期化するのでしょうか?

答えて

1

ネイティブキーボードのように途中で が表示されますので、モーダル表示が機能しません。

テキストフィールドのinputViewプロパティを、キーボードとして使用するビューに設定します。

textField.intputView = calculatorView; 

それがファーストレスポンダになるたびテキストフィールドは、代わりに標準的なキーボードのビューが表示されます。この場合、私はどこかで、あなたのビューコントローラの-viewDidLoadで追加したいと思う、それはcalculatorViewだと思います。自分でビューを提示することについて心配する必要はありません。

しかし、別のxibからcalculatorViewをどのように初期化すればよいですか?

これも簡単です。あなたがまだの場合は、あなたのビューコントローラにコンセントを追加します。

@property(strong, nonatomic) IBOutlet UIView* calculatorView; 

は(あなたが自然だろう@synthesizeと、アクセサを作成したいと思う)のビューが含まれている「Calculator.xib」という名前.xibを作成します。あなたは使いたい。 .xibファイルの所有者プロキシアイコンを選択し、クラスをビューコントローラのクラスに設定します。その後、.xib内のビューをFile's OwnerのcalculatorViewコンセントに接続します。あなたのビューコントローラのコードでは、.xibファイルをロードします。その後

[[NSBundle mainBundle] loadNibNamed:@"Calculator" owner:self options:0]; 

を、あなたのcalculatorViewプロパティは、ビューのインスタンスを指している必要があります。

+0

あなたの助けてくれてありがとう、カレブ、私はちょっと混乱しています。私は電卓のビューとxibを使用しているviewController、またはcalculatorView.hに接続していますか?私は2つの異なるビューからそれを使用する必要があるので、私はそれを1つから接続すれば、もう1つのビューからは使用できません。 – inorganik

関連する問題