1

私は、keyboardTypeがNumberPadに設定されているときにカスタムの「DONE」ボタンを使用するUITextFieldを備えたUIViewControllerを持っています。私はこれに似たコードを使用しました-

http://www.neoos.ch/news/46-development/54-uikeyboardtypenumberpad-and-the-missing-return-key

ただし、私の問題は、カスタムキーボードがアプリケーションの他のUIビューのどこにでも残っていることです。別のViewControllerからキーボードを呼び出すと、キーボードの上に「DONE」ボタンが表示されます。UIKeyboardのカスタマイズされていないバージョンを必要とする他のビューがあります。

ありがとう

4

1 に答える 1

1

私はあなたが上で述べたのとまったく同じブログから始めました。アプリケーション全体で複数のキーボードタイプがあったため、まったく同じ問題が発生しました。

私のソリューションには、次の変更が含まれていました。

1-UIButton*doneButtonをControllerクラスのメンバー変数にします

2-「viewDidLoad」メソッドに、次のスニペットがあります

self.doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(0, 163, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
[doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
[doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];

3-「doneButton」IBActionには、ボタンがキーボードビューから削除されていることを確認するための次のスニペットがあります。

- (IBAction) doneButton:(id)sender {
    [self.view endEditing:YES];
    [doneButton removeFromSuperview];
}

ボタンを追加するロジックは、ブログで説明されているものと同じです。その指示に従う限り、テンキーにボタンが表示され、[完了]ボタンをクリックするとボタンが削除されます。

于 2011-08-28T20:39:19.820 に答える