41

いくつかのテキスト入力があり、背景に触れるたびにキーボードを非表示にできますが、最初のテキスト ボックス名 textField1 に入力している場合のみです。今、このコードは単純なはずですが、私はそれを理解できないようです.

-(IBAction)backgroundTouched:(id)sender {
    [textField1 resignFirstResponder];
    [buildLength resignFirstResponder];
    [buildWidth resignFirstResponder];
    [ridgeWidth resignFirstResponder];
    [rafterWidth resignFirstResponder];
    [hipWidth resignFirstResponder];
    [eaveOverhang resignFirstResponder];
    [spacing resignFirstResponder];
}
4

4 に答える 4

189

ボタンをタップしたときにキーボードを非表示にしたい場合で、に複数のボタンがある場合はUITextFieldsview次を使用する必要があります。

[self.view endEditing:YES];

ビューの任意の場所をタップすると、キーボードが消えます。

于 2012-12-21T14:13:03.827 に答える
28

これを試して:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
     [[self view] endEditing:YES];
}
于 2013-04-05T12:09:06.960 に答える
6

ビューの配列 (UIView のサブビューなど) を繰り返し処理し、手動でキーボードを再署名することもできます。これは、親 UIView 内のすべてのサブビューで再署名したくない場合に適しています。

- (void)viewDidLoad
{
    self.view.userInteractionEnabled = TRUE;
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    //Iterate through your subviews, or some other custom array of views
    for (UIView *view in self.view.subviews)
        [view resignFirstResponder];
}
于 2013-03-31T07:00:28.430 に答える
2

メソッドを試すことができUITouchます。このセットでは、テキスト フィールド オブジェクトを設定resignFirstResponder し、画面に触れるたびに呼び出します。これが機能することを願っています。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{  
    [currentSelectedTextField resignFirstResponder];
}
于 2012-05-01T08:50:57.200 に答える