相关疑难解决方法(0)

无法在UITextView中进行URL可点击

我正在使用Interface Builder来布局我的应用程序.我有一个包含一些文本的UITextView,其中一部分是我想点击的URL(例如启动浏览器).我已经阅读了如何执行此操作并相信我正确地执行此操作,但是当URL显示为蓝色/可点击时,在iPhone模拟器中单击它不起作用.什么都没发生.

我的控制器:

@interface FirstViewController : UIViewController <UISearchBarDelegate>
@property (nonatomic, retain) IBOutlet UITextView *review;
@end
Run Code Online (Sandbox Code Playgroud)

在我的实现中我@synthesize review;(并且能够操纵视图的文本,所以不要认为这是问题).

在IB我有:

IB设置

..然后,当我去设置文本(并尝试在视图中点击可用的URL)时,我这样做:

self.review.text = content;
// My understanding is that this makes URLs clickable...
self.review.dataDetectorTypes = UIDataDetectorTypeLink;
Run Code Online (Sandbox Code Playgroud)

......显示如下内容:

模拟器输出

...它看起来真的想要工作,但是点击URL时没有任何反应.我错过了什么?

--UPDATE--

尝试添加self.review.editable = NO;以回应Dixit Patel的回答,但它没有解决问题:

self.review.text = content;
// My understanding is that this makes URLs clickable...
self.review.editable = NO; 
self.review.dataDetectorTypes = UIDataDetectorTypeLink;
Run Code Online (Sandbox Code Playgroud)

url interface-builder uitextview clickable ios

37
推荐指数
3
解决办法
3万
查看次数

NSRange,在一个段落中找到一个错误的结果

我写了一个方法来突出显示一个段落NSString中的单词,通过发送一个单词,它完美地工作,直到我遇到这种情况:

当我有这个文字时:

他们的母亲试图在其他地方穿上它们......

当我传递这个词时other,"m other" 这个词正在突出显示,当我走过时,in我得到了"礼服ing".

这是我的代码:

-(void)setTextHighlited :(NSString *)txt{
    NSMutableAttributedString * string = [[NSMutableAttributedString alloc]initWithString:self.textLabel.text];

    for (NSString *word in [self.textLabel.text componentsSeparatedByString:@" "]) {

        if ([word hasPrefix:txt]) {
            NSRange range=[self.textLabel.text rangeOfString:word];
            [string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:range];
    }
Run Code Online (Sandbox Code Playgroud)

我试过使用rangeOfString:options:包含所有选项,但仍然有同样的问题.

请指教

PS: 这是我的代码的来源

objective-c nsstring nsattributedstring ios nsrange

2
推荐指数
1
解决办法
1342
查看次数