1

ユーザーが年齢と別の数値を入力できるようにするために、いくつかの UITextField が存在するアプリケーションがあります。理想的には、TextField が編集されているときに、キーボードに数字キーパッドが表示されるようにします。現在、数値パッドには完了ボタンがないため、「完了」ボタンを使用してキーボードを閉じるためだけに、数値と句読点に設定しています。

数字キーパッドを使用しようとして、メイン ビューの背景をタップして閉じるように設定しようとしました。

-(IBAction)backgroundTapped:(id)sender;

上記のアクションをヘッダー ファイルに作成しました。

-(IBAction)backgroundTapped:(id)sender {
    [ageEntry resignFirstResponder];
}

実装ファイルで上記のメソッドを拡張して、ageEntry TextField に rejectFirstResponder を指示しました。また、メイン ビューを UIControl クラスに変更し、Interface Builder を介して buttonTapped アクションを関連するアラートに接続しました。しかし、背景に触れても何も起こりません。

何か案は?

4

3 に答える 3

1

はるかに簡単な方法はinputAccessoryView、テキストフィールドにを追加することです。この入力アクセサリビューは、[完了]ボタンUIToolbarを1つUITabBarButton使用することができます。

ハックははるかに少なく、たとえばSafariでキーボードを閉じるために使用されるアクセサリビューのように見えます。

于 2011-08-02T08:59:42.417 に答える
1

メソッドを使用して、viewControllerのビューでタッチを検出するだけです

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [urAgeField resignFirstResponder];
    [urOtherField resignFirstResponder];
}

このメソッドでキーボードを再署名します

于 2011-08-02T08:59:00.613 に答える
0

同様の問題がありました。ここに解決策があります..

編集済み

追加

- (void)viewDidLoad 
{
        [super viewDidLoad];
         UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:self
                                                                    action:@selector(tap:)];
        tap.numberOfTapsRequired = 1;

        [self addGestureRecognizer:tap];


}

- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
   [ageEntry resignFirstResponder];            
}
于 2011-08-02T08:58:05.890 に答える