禁用 UITextView 的放大镜但在 objective c 中启用 Link 和 phone 数字检测
Disable magnifying glass of UITextView But enable the Link and phone number detection in objective c
我在 iOS9 中遇到 UITextview 问题,当我在 textview 上长按时它显示放大镜。我试图通过 UILongPressGestureRecognizer 禁用,它也完全禁用 Link 和 phone 触摸事件。
如何仅禁用放大镜。
文本视图将位于 UITableView 单元格中。
UILongPressGestureRecognizer 如果使用 stroyboard 并且从代码中执行此操作,则取消选中取消触摸视图将其值设置为 false
检查 DetectLinks
取消选中可选择的,可编辑的
如果我理解正确,你想禁用放大镜,但系统 called.you 只能做的是更改 UIMenuController state:hidden
或 show
和 UIMenuItem
在 UIMenuController
内。像这样
我终于自己解决了这个问题。在您的 UITextView 子类中,使用:
- (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer {
// remove magnifying glass, still allowing link detection:
if ([gestureRecognizer class] == [UILongPressGestureRecognizer class] || [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
[super addGestureRecognizer:gestureRecognizer];
}
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
// remove magnifying glass, still allowing link detection:
if ([gestureRecognizer class] == [UILongPressGestureRecognizer class] || [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
return YES;
}
return NO;
}
子类化并重写仅用于点击手势实现的手势。它还将禁用私有的多个单击手势 UITextTapGestureRecognizer。我猜你无论如何都不想要多次点击。
override func addGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer) {
if gestureRecognizer.isKind(of: UITapGestureRecognizer.self) {
super.addGestureRecognizer(gestureRecognizer)
}
}
override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
if gestureRecognizer.isKind(of: UITapGestureRecognizer.self) { return true }
return false
}
我在 iOS9 中遇到 UITextview 问题,当我在 textview 上长按时它显示放大镜。我试图通过 UILongPressGestureRecognizer 禁用,它也完全禁用 Link 和 phone 触摸事件。
如何仅禁用放大镜。 文本视图将位于 UITableView 单元格中。
检查 DetectLinks
取消选中可选择的,可编辑的
如果我理解正确,你想禁用放大镜,但系统 called.you 只能做的是更改 UIMenuController state:hidden
或 show
和 UIMenuItem
在 UIMenuController
内。像这样
我终于自己解决了这个问题。在您的 UITextView 子类中,使用:
- (void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer {
// remove magnifying glass, still allowing link detection:
if ([gestureRecognizer class] == [UILongPressGestureRecognizer class] || [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
[super addGestureRecognizer:gestureRecognizer];
}
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
// remove magnifying glass, still allowing link detection:
if ([gestureRecognizer class] == [UILongPressGestureRecognizer class] || [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
return YES;
}
return NO;
}
子类化并重写仅用于点击手势实现的手势。它还将禁用私有的多个单击手势 UITextTapGestureRecognizer。我猜你无论如何都不想要多次点击。
override func addGestureRecognizer(_ gestureRecognizer: UIGestureRecognizer) {
if gestureRecognizer.isKind(of: UITapGestureRecognizer.self) {
super.addGestureRecognizer(gestureRecognizer)
}
}
override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
if gestureRecognizer.isKind(of: UITapGestureRecognizer.self) { return true }
return false
}