| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- //
- // TUITextView.m
- // Masonry
- //
- // Created by xiangzhang on 2022/10/14.
- // Copyright © 2023 Tencent. All rights reserved.
- //
- #import "TUITextView.h"
- #import <TUICore/TUIThemeManager.h>
- @implementation TUITextView
- - (instancetype)init {
- self = [super init];
- if (self) {
- self.dataDetectorTypes = UIDataDetectorTypeLink | UIDataDetectorTypePhoneNumber;
- [self setupLongPressGesture];
- self.tintColor = TIMCommonDynamicColor(@"chat_highlight_link_color", @"#6495ED");
- }
- return self;
- }
- - (BOOL)canBecomeFirstResponder {
- return YES;
- }
- - (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
- return NO;
- }
- - (void)buildMenuWithBuilder:(id<UIMenuBuilder>)builder API_AVAILABLE(ios(13.0)) {
- if (@available(iOS 16.0, *)) {
- [builder removeMenuForIdentifier:UIMenuLookup];
- }
- [super buildMenuWithBuilder:builder];
- }
- - (void)disableHighlightLink {
- self.dataDetectorTypes = UIDataDetectorTypeNone;
- }
- - (void)setupLongPressGesture {
- self.longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
- [self addGestureRecognizer:self.longPressGesture];
- }
- - (void)handleLongPress:(UILongPressGestureRecognizer *)gesture {
- if ([gesture isKindOfClass:[UILongPressGestureRecognizer class]] && gesture.state == UIGestureRecognizerStateBegan) {
- if (self.tuiTextViewDelegate && [self.tuiTextViewDelegate respondsToSelector:@selector(onLongPressTextViewMessage:)]) {
- [self.tuiTextViewDelegate onLongPressTextViewMessage:self];
- }
- }
- }
- - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
- shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
- if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]] &&
- gestureRecognizer != self.longPressGesture) {
- return NO;
- }
- return YES;
- }
- @end
|