             return
         }
         let tag = key.hash
-        saveButton.removeTarget(self, action: #selector(saveButtonPressed(sender:)), for: .touchUpInside)
+        saveButton.removeTarget(self, action: #selector(saveButtonPressed(sender:forEvent:)), for: .touchUpInside)
         var saveButtons = visibleSaveButtons[tag] ?? []
         saveButtons.remove(saveButton)
         if saveButtons.count == 0 {

            PiwikTracker.sharedInstance()?.wmf_logActionUnsave(inContext: sender, contentType: sender)
            savedPagesFunnel.logDelete()
        }
        if let article = updatedArticle {
            delegate?.didSaveArticle(isSaved, article: article)
        }
    }
}

    
    @objc public weak var delegate: WMFSaveButtonsControllerDelegate?
    
    @objc func saveButtonPressed(sender: SaveButton, forEvent event: UIEvent) {
        guard let key = visibleArticleKeys[sender.tag] else {
            return
        }
        
        activeKey = key
        activeSender = sender
        lastTouch = event.allTouches?.first
        
        if let articleToUnsave = dataStore.savedPageList.entry(forKey: key) {
            delegate?.willUnsaveArticle(articleToUnsave)
