开发者

Resign First Responder on ScrollView Touch

How can I hide the keyboard on ScrollView touch event...

Scenario is like that...

->View ->开发者_Go百科ScrollView ->Textfield

I want to hide the keyboard on touch of scrollView. I tried to override the class for scrollview but still i can't do it.


Doing like this will help:

@interface MyClass <UIScrollViewDelegate> {
}

@implementation

- (void)viewDidLoad {
  yourScrollView.delegate = self;
}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
  [myTextField resignFirstResponder];
}

If you really want to handle the touch event, then you need to subclass the UIScrollView and override the method:

- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view {

}

More about UIScrollView touch


This is what worked for me

in your viewController's viewDidLoad-method

    UITapGestureRecognizer *tapScroll = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapped)];
    tapScroll.cancelsTouchesInView = NO;
    [viewScroller addGestureRecognizer:tapScroll];

where viewScroller is your scroller. In the tapped-method we have

    - (void) tapped {
        [self.view endEditing:YES];
    }

Don't know why but the above did not work for me...even though it should


Try this:

Add gesturerecognizer for scrollview,

UITapGestureRecognizer *tapScroll = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)];
    tapScroll.cancelsTouchesInView = NO;
    [yourScrollview addGestureRecognizer:tapScroll];
    [tapScroll release];

Resign your keyboard in (tapped:) method.


Please, take a look at this answer, This is the easiest one I found.

UitextField resignFirstResponder does not work in scroll view


- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view
{
    [self.view endEditing:YES];
     return YES;
 }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜