touchesBegan: withEvent: 不执行/完美收起键盘

2022-09-15 10:09:17 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

eg:写一个category类目 UIScrollView Event

– (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

[super touchesBegan:touches withEvent:event];

[[[self nextResponder] nextResponder] touchesBegan:touches withEvent:event];

}

应用场景:

操作:点击ScrollView上的textFiledView -> 再点击ScrollView上的button

希望能够收起键盘(项目中有无数个这样的操作)

材料:BaseViewController(这是所有ViewController的基类)

1.在BaseViewController写入

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

//分别取消第一响应者

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

}

注:点击添加在self.view上的控件已经可以响应了,但是ScrollView上的控件不会响应。

2.写一个category类目 UIScrollView Event.h

– (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

[super touchesBegan:touches withEvent:event];

[[[self nextResponder] nextResponder] touchesBegan:touches withEvent:event];

}

注:点击ScrollView上的textFiledView已经可以响应了,但是ScrollView上的button还是不能响应

3. 写一个category类目 UIButton Event.h

– (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

[super touchesBegan:touches withEvent:event];

[[[self nextResponder] nextResponder] touchesBegan:touches withEvent:event];

}

到此完美解决。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164162.html原文链接:https://javaforall.cn

0 人点赞