1

重複の可能性:
UITextField 以外の場所でタッチするとキーボードを閉じる

アプリで UIScrollView を使用しています。テキストフィールドとボタンをいくつか配置しています。テキストボックスの外側に触れたときにキーボードを非表示にしたい。(つまり、uiscrollview をテーピングする予定です)。私は多くのことを試しました... UIGestureRecognizerを使用していますが、機能していません...助けてください

4

2 に答える 2

2

これが試した解決策で、うまくいきます.

次のコードを viewDidLoad に追加します。

-(void)viewDidLoad {
    //create a tapGesture which calls a removeKeyboard method
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(removeKeyboard)];

    tapGesture.cancelsTouchesInView = NO;

    [self.yourScrollView addGestureRecognizer:tapGesture];
}

-(void)removeKeyboard {
    [self.yourTextField resignFirstResponder];
}

希望が役立ちます....

于 2012-10-01T21:31:10.647 に答える
1

ビューで次のコードを試してください...

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    if ([yourTextView isFirstResponder] && [touch view] != yourTextView) {
        [yourTextView resignFirstResponder];
    }
}
于 2012-10-01T20:53:14.297 に答える