我有一个简单的问题,我有一个字符串,如“#my#name#is #memesh#verma”并分配给UITableview单元格标签,
public class CustomMessageTreeNode extends DefaultMutableTreeNode{
private Message message;
public CustomMessageTreeNode(String msgName){
super(msgName);
}
public Message getMessage() {
return message;
}
public void setMessage(Message message) {
this.message = message;
}
}
我的问题是当我点击单个项目时如何获取每个单词的名称。 如果我点击#umesh然后我得到“umesh”字样。
答案 0 :(得分:0)
更好的解决方案是添加支持触摸的自定义标签。例如,TTTAttributedLabel支持链接上的触摸。
主要任务是在用户触摸单词并识别单词时收到通知。
您可以将URL(具有特殊格式)添加到任何单词,并在用户单击时订阅通知(作为标签的委托)。例如,您可以为“word”创建此URL:
touchscheme:// word
答案 1 :(得分:0)
我没有检查过点击UILabel时如何执行操作。但是,我用UITextView体验过这一点。您可以使用“NSLinkAttributeName”来执行此操作。
基本上,从原始字符串开始,尝试查找触发操作所需的字符串范围。然后添加一个链接值。
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:yourString];
[attributedString addAttribute:NSLinkAttributeName value:url range:range];
[textView setAttributedText:attributedString];
将委托设置为textView并处理以下方法
-(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange{
// You can retrive your string here or perform an action
return YES;
}
希望这会对你有所帮助。