UITextView dataDetectorTypes не может обнаружить http://t.co/ ссылок? - PullRequest
4 голосов
/ 05 сентября 2011
    theTweet = [[[UITextView alloc] initWithFrame:CGRectMake(65, 10, 225, 65)] autorelease];
    theTweet.text = [[tweets objectAtIndex:index] objectForKey:@"text"];
    theTweet.dataDetectorTypes = UIDataDetectorTypeLink;
    [tweetView addSubview:theTweet];

[[tweets objectAtIndex: index] objectForKey: @ "text"];содержит ссылку с http://t.co/######, но не похоже, что UITextView обнаруживает http://t.co ссылки.Нужно ли мне вместо этого использовать UIWebView?

Ответы [ 5 ]

8 голосов
/ 21 ноября 2014

Одна вещь, которую я заметил, заключается в том, что для того, чтобы UITextViews распознавали ссылки, вам нужно установить для select значение YES. Пример:

self.bodyTextView = [[UITextView alloc]initWithFrame:myFrame];
[self.bodyTextView setEditable:NO];
//this is the key
[self.bodyTextView setSelectable:YES];
[self.bodyTextView setDataDetectorTypes:UIDataDetectorTypeLink];
[self.bodyTextView setAttributedText:myAttributedText];
4 голосов
/ 18 января 2013

Попробуйте использовать это Надеюсь, что эта помощь вам

По умолчанию ссылки не активируются в UITextView .Но, к счастью, их можно включить с помощью нескольких простых строк кода:

theTweet.editable = NO;
theTweet.dataDetectorTypes = UIDataDetectorTypeLink;

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

Вот так.

UITextView *theTweet= [[UITextView alloc] initWithFrame:CGRectMake(65, 10, 225, 65)];
theTweet.text = @"http://t.co/######";
theTweet.editable = NO;
theTweet.dataDetectorTypes = UIDataDetectorTypeLink;
[myview addSubview:theTweet];
3 голосов
/ 05 сентября 2011

вы установили: theTweet.dataDetectorTypes = UIDataDetectorTypeLink; ?

Теперь, когда вы добавили это, я попробовал этот код:

    UITextView *theTweet;
theTweet = [[UITextView alloc] initWithFrame:CGRectMake(65, 10, 225, 65)];
theTweet.text = @"http://t.co/######";
theTweet.editable = NO;
theTweet.dataDetectorTypes = UIDataDetectorTypeLink;
[myview addSubview:theTweet];

, и он отлично работает со мной.

ошибка должна быть где-то еще.(Вы тоже отключили редактирование?)

0 голосов
/ 19 марта 2019

Может быть, хорошо сделать расширение, чтобы нам не пришлось его запоминать ...

@implementation UITextView (Extension)

- (instancetype)dataDetector :(UIDataDetectorTypes)types {
    self.dataDetectorTypes = types;
    if (types != UIDataDetectorTypeNone) self.selectable = true;
    return self;
}

@end
0 голосов
/ 23 февраля 2015

Вам необходимо установить редактируемое свойство NO

theTweet = [[[UITextView alloc] initWithFrame:CGRectMake(65, 10, 225, 65)] autorelease];
theTweet.editable = NO; //add this line
theTweet.text = [[tweets objectAtIndex:index] objectForKey:@"text"];
theTweet.dataDetectorTypes = UIDataDetectorTypeLink;
[tweetView addSubview:theTweet];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...