 
     open override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
         addLinkAttributesToLinkResult(withTouches: touches, highlighted: false)
+        
+        didTouch(TouchResult(linkResult: nil, touches: touches, event: event, state: .cancelled))
         
         super.touchesCancelled(touches, with: event)
     }

            didTouch(TouchResult(linkResult: linkResult, touches: touches, event: event, state: .began))
        } else {
            selectedLinkResult = nil
        }
        
        addLinkAttributesToLinkResult(withTouches: touches, highlighted: true)

        if let selectedLinkResult = selectedLinkResult {
            didTouch(TouchResult(linkResult: selectedLinkResult, touches: touches, event: event, state: .ended))
            selectedLinkResult.textLink?.action()
        } else {
            didTouch(TouchResult(linkResult: nil, touches: touches, event: event, state: .ended))
        }
        
        selectedLinkResult = nil
