Ber*_*rnd 11 uitextview ios uitapgesturerecognizer swift
我如何添加UITapGestureRecognizer到一个UITextView,但仍然获得了通过对这些触摸UITextView为正常?
目前,只要我向textView添加自定义手势,它就会阻止点击UITextView默认操作,例如定位光标.
var tapTerm:UITapGestureRecognizer = UITapGestureRecognizer()
override func viewDidLoad() {
tapTerm = UITapGestureRecognizer(target: self, action: "tapTextView:")
textView.addGestureRecognizer(tapTerm)
}
func tapTextView(sender:UITapGestureRecognizer) {
println("tapped term – but blocking the tap for textView :-/")
…
}
Run Code Online (Sandbox Code Playgroud)
我如何处理点击但保持像光标定位一样的textView行为?
Zel*_* B. 24
要做到这一点,你的视图控制器采用UIGestureRecognizerDelegate和覆盖应同时识别手势识别器方法,如:
override func viewDidLoad() {
tapTerm = UITapGestureRecognizer(target: self, action: "tapTextView:")
tapTerm.delegate = self
textView.addGestureRecognizer(tapTerm)
}
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
Run Code Online (Sandbox Code Playgroud)
如果有人来这里寻找 @Zell B. 在 Objective C 中的答案,代码如下:
- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(textViewTapped:)];
tap.delegate = self;
tap.numberOfTapsRequired = 1;
[self.textView addGestureRecognizer:tap];
}
- (void)textViewTapped:(UITapGestureRecognizer *)tap {
//DO SOMTHING
}
#pragma mark - Gesture recognizer delegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
PS:别忘了<UIGestureRecognizerDelegate>
| 归档时间: |
|
| 查看次数: |
9678 次 |
| 最近记录: |