Аналогично этот ответ я дал на аналогичный вопрос , но с оговоркой, что я использовал это только на iOS 10, вы можете сделать это, расширив UITextView
с помощью пользовательского класса и переопределив addGestureRecognizer:
.
Отслеживание SingleTap просто служит в качестве дозорного элемента для добавления касания двумя пальцами, поскольку UITextView
постоянно добавляет и отбрасывает жесты:
@interface MyCustomTextView ()
@property (weak, nonatomic) UITapGestureRecognizer *singleTap;
@end
@implementation MyCustomTextView
/**
* this will fire when the text view is tapped with two fingers
*
* @param tgr
*/
- (void)_handleTwoTouches:(UITapGestureRecognizer *)tgr
{
// ADD CODE HERE
}
- (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
{
[super addGestureRecognizer:gestureRecognizer];
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
UITapGestureRecognizer *tgr = (UITapGestureRecognizer *)gestureRecognizer;
if ([tgr numberOfTapsRequired] == 1 && [tgr numberOfTouchesRequired] == 1) {
if (!self.singleTap) {
self.singleTap = tgr;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(_handleTwoTouches:)];
tap.numberOfTapsRequired = 1;
tap.numberOfTouchesRequired = 2;
[super addGestureRecognizer:tap];
}
}
}
}
@end