iOS, как программно смоделировать два нажатия на uitextview? - PullRequest
2 голосов
/ 26 ноября 2011

Я хочу сделать это, потому что я хочу получить выделенный текст после однократного нажатия. Если есть другой подход к выделению текста, пожалуйста, дайте мне знать.

Спасибо.


Я изменил решение Luiz, но оно копирует весь текст в textview. Чего я хочу добиться, так это выбрать одно слово.

    if (gestureRecognizer.state == UIGestureRecognizerStateRecognized)
    {
        textview.selectedRange = NSMakeRange(0, textview.text.length);
        NSString *selected = [self.textview.text substringWithRange:textview.selectedRange];
        NSLog (@"selected = %@", selected);

    }

EDIT:

Я все еще работаю над поиском хорошо работающего кода для этой задачи. В больших приложениях, таких как Kindle.app и Wakaru.app, можно нажать один раз и принудительно выбрать одно слово, как два нажатия. Вы знаете, как это сделать или идея для достижения этой функции?

Ответы [ 3 ]

2 голосов
/ 26 ноября 2011

Попробуйте выполнить следующие действия:

  1. Установите IBOutlet для вашего UITextView, который называется, скажем, myTextView.

  2. On viewDidLoad вашего контроллера представления, создайте UITapGestureRecognizer для myTextView:

    UITapGestureRecognizer *tapTextView = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
    [myTextView addGestureRecognizer:tapTextView];
    [tapTextView release];
    
  3. Реализуйте метод tap, чтобы UITextView выделял свой текст:

     - (void)tap:(UITapGestureRecognizer *)recognizer
     {
         if (recognizer.state == UIGestureRecognizerStateRecognized) {
             myTextView.selectedRange = NSMakeRange(0, myTextView.text.length);
         }
     }
    

Надеюсь, это поможет!

С наилучшими пожеланиями!

1 голос
/ 27 ноября 2011

Прочитав все ваши комментарии, я думаю, что теперь я понимаю ваш вопрос следующим образом: «В UITextView, как я могу одним нажатием выделить текст так же, как это обычно делает двойное касание?»

Я не думаю, что вы найдете решение этой проблемы, кроме написания своего собственного текстового представления вручную.

1 голос
/ 26 ноября 2011

Ваш вопрос неясен.

Когда вы говорите «Если есть другой подход к выделению текста, пожалуйста, дайте мне знать», кажется, что вам просто нужно установить свойство selectedRange UITextView.

С другой стороны, я не вижу связи с двойным нажатием ....

Тим

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...