2015-04-27 2 views
-1

У меня есть UITextView. Затем я добавил в UITextView двойной признак распознавания жестов. Поэтому я не могу выбрать текст в UITextView, когда я дважды использую UITextView. Как я могу выбрать текст и получить событие двойного касания в одно и то же время? Спасибо заранееНевозможно выбрать текст в UITextView

Это мой код:

UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(respondToTapGesture:)]; 
    doubleTapRecognizer.numberOfTapsRequired = 2; 
    [textMeaning addGestureRecognizer:doubleTapRecognizer]; 
+0

попробуйте установить жест атрибута распознаватель cancelsTouchesInView ложь. – matthias

+0

Не работает – thinhvd

+0

показать мне свой код – vijeesh

ответ

0

Попробуйте это:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapped:)]; 
    [tap setNumberOfTapsRequired:2]; 
    [_txtVw addGestureRecognizer:tap]; 


} 

-(void)tapped:(UITapGestureRecognizer *)recognizer 
{ 

     UITextView *textView_New = (UITextView *)recognizer.view; 
     CGPoint pos = [recognizer locationInView:textView_New]; 

     NSLog(@"Tap Gesture Coordinates: %.2f %.2f", pos.x, pos.y); 

     UITextPosition *tapPos = [textView_New closestPositionToPoint:pos]; 

     UITextRange * word = [textView_New.tokenizer rangeEnclosingPosition:tapPos withGranularity:UITextGranularityWord inDirection:UITextLayoutDirectionRight]; 
    NSLog(@"WORD: %@", [textView_New textInRange:word]); 

} 
+0

Он выберет весь текст в UITextView. Я просто хочу выбрать слово в UITextView – thinhvd

+0

yes .. здесь я выбираю весь текст textview. Итак, вы хотите выбрать слово, на которое вы правильно набрали? – user4261201

+0

да, я делаю. Я просто хочу выбрать одно слово – thinhvd

0

Если добавить жест -> событие выбор не воевавший

Таким образом, вы должны изменить свой поток!

+0

Я не устанавливаю событие select. IOS автоматически выбирает текст при двойном щелчке по тексту в UITextView. – thinhvd

+0

Вы отключите выбор/редактирование uitextview, попробуйте следующее: textView.selectable = NO; // Или textView.editable = NO; –

0

Попробуйте это в настоящем коде:

.h файл

UITextField *txtField; 

.m файл

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; 
    tapGesture.numberOfTapsRequired = 2; 
    [txtField addGestureRecognizer:tapGesture]; 
} 

- (void)handleTapGesture:(UITapGestureRecognizer *)sender { 
    if (sender.state == UIGestureRecognizerStateRecognized) { 
    // Perform your operation which you want to do 
    } 
} 
0
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; 
    tapGesture.numberOfTapsRequired = 2; 
    [txtField addGestureRecognizer:tapGesture]; 
} 

- (void)handleTapGesture:(UITapGestureRecognizer *)sender { 
    if (sender.state == UIGestureRecognizerStateRecognized) { 

    [self.titleField setSelectedTextRange:[self.titleField textRangeFromPosition:self.titleField.beginningOfDocument toPosition:self.titleField.endOfDocument]]; 

    } 
} 

попробовать это

для выбора текста в диапазоне

int start = 2; 
int end = 5; 
UITextPosition *startPosition = [self positionFromPosition:self.beginningOfDocument offset:start]; 
UITextPosition *endPosition = [self positionFromPosition:self.beginningOfDocument offset:end]; 
UITextRange *selection = [self textRangeFromPosition:startPosition toPosition:endPosition]; 
self.selectedTextRange = selection; 
+0

Он выберет весь текст в UITextView. Я просто хочу выбрать слово в UITextView – thinhvd

+0

попробуйте отредактированный ответ, он выберет текст в пределах диапазона – SARATH

0

Я не хочу, чтобы пользователь мог изменить текст, так снят «Редактируемый» в интерфейсе строителя для UITextView , Установите делегат для UITextView в этот класс !!!

Затем используйте

-(void)textViewDidChangeSelection:(UITextView *)textView{ 
[textView setSelectedTextRange:[textView textRangeFromPosition:textView.beginningOfDocument toPosition:textView.endOfDocument]]; }