2013-01-05 51 views
2

我試圖用NIAttributedLabel生產同時具有文本,鏈接和支持這種行爲標籤:NIAttributedLabel - 支持鏈接,同時保持控制功能的水龍頭

  • 按一個鏈接將調用- (void)attributedLabel:(NIAttributedLabel *)attributedLabel didSelectTextCheckingResult:(NSTextCheckingResult *)result atPoint:(CGPoint)point; - 這工作正常。
  • 按下其他任何地方都會調用另一種方法 - 如果實施,上面的鏈接功能會丟失。

我不必使用NIAttributedLabel,所以建議更好的控制也可以。

謝謝你的幫助

+1

什麼是'NIAttributeLabel'? – rmaddy

回答

0

我終於想通了;

  1. 加法功能到文件NIAttributedLabel.m

    -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
        // never return self. always return the result of [super hitTest..]. 
        // this takes userInteraction state, enabled, alpha values etc. into account 
        UIView *hitResult = [super hitTest:point withEvent:event]; 
    
        // don't check for links if the event was handled by one of the subviews 
        if (hitResult != self) { 
         return hitResult; 
        } 
    
        if (self.explicitLinkLocations || self.detectedlinkLocations) { 
         BOOL didHitLink = ([self linkAtPoint:point] != nil); 
         if (!didHitLink) { 
          // not catch the touch if it didn't hit a link 
          return nil; 
         } 
        } 
        return hitResult; 
    } 
    
  2. 移除所有[超級觸摸XXXX]在所有touchXXX功能;

那麼,它的工作原理!