テキスト入力がいくつかあり、背景に触れるたびにキーボードを非表示にできますが、最初のテキストボックス名textField1に入力しているときだけです。今、このコードはシンプルなはずですが、私はそれを得ることができないようです。
-(IBAction)backgroundTouched:(id)sender {
[textField1 resignFirstResponder];
[buildLength resignFirstResponder];
[buildWidth resignFirstResponder];
[ridgeWidth resignFirstResponder];
[rafterWidth resignFirstResponder];
[hipWidth resignFirstResponder];
[eaveOverhang resignFirstResponder];
[spacing resignFirstResponder];
}
ボタンをタップしたときにキーボードを非表示にし、UITextFields
に複数のview
がある場合は、次を使用する必要があります。
[self.view endEditing:YES];
ビューの任意の場所をタップすると、キーボードが消えます。
これを試して:
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[[self view] endEditing:YES];
}
ビューの配列(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];
}
UITouch
メソッドを試すことができます。これで、テキストフィールドオブジェクトを設定し、画面に触れるたびにキーボードが辞めるたびにresignFirstResponder
を呼び出すことができます。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[currentSelectedTextField resignFirstResponder];
}