向 NSAttributedString 添加常规操作?
Add a regular action to an NSAttributedString?
我只是想添加一个 objetive-c 操作,使用 NSAttributedString 在我的 UILabel 中点击某个范围时调用。
但我不知道该怎么做。我不想打开一个URL,我只想调用一个方法
谢谢
您可以使用 NSLinkAttributeName 本身来实现此目的。使用如下所示的属性字符串并将其设置为 UITextView 的文本。
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:termsString];
[attributedString addAttribute:NSLinkAttributeName value:url range:range];
[myTextView setAttributedText:attributedString];
然后覆盖 UITextView 委托方法:
-(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange{
// Call your method here.
return YES;
}
不要忘记设置 textView 的委托!
此外,您可以在其上制作一个简单的透明 UITouch 类控件。
这意味着你需要伪造它。
我只是想添加一个 objetive-c 操作,使用 NSAttributedString 在我的 UILabel 中点击某个范围时调用。
但我不知道该怎么做。我不想打开一个URL,我只想调用一个方法
谢谢
您可以使用 NSLinkAttributeName 本身来实现此目的。使用如下所示的属性字符串并将其设置为 UITextView 的文本。
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:termsString];
[attributedString addAttribute:NSLinkAttributeName value:url range:range];
[myTextView setAttributedText:attributedString];
然后覆盖 UITextView 委托方法:
-(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange{
// Call your method here.
return YES;
}
不要忘记设置 textView 的委托!
此外,您可以在其上制作一个简单的透明 UITouch 类控件。 这意味着你需要伪造它。