web-dev-qa-db-ja.com

キーボードiOSを隠す

テキスト入力がいくつかあり、背景に触れるたびにキーボードを非表示にできますが、最初のテキストボックス名textField1に入力しているときだけです。今、このコードはシンプルなはずですが、私はそれを得ることができないようです。

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

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

[self.view endEditing:YES];

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

189
Bhavin

これを試して:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
     [[self view] endEditing:YES];
}
27
user2248428

ビューの配列(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];
}
6
Ospho

UITouchメソッドを試すことができます。これで、テキストフィールドオブジェクトを設定し、画面に触れるたびにキーボードが辞めるたびにresignFirstResponderを呼び出すことができます。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{  
    [currentSelectedTextField resignFirstResponder];
}
2
Sonu