             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 {

import UIKit

@objc public protocol WMFSaveButtonsControllerDelegate: NSObjectProtocol {
    func didSaveArticle(_ didSave: Bool, article: WMFArticle)
    func willUnsaveArticle(_ article: WMFArticle)
    func showAddArticlesToReadingListViewController(for article: WMFArticle)
}

        let tag = key.hash
        saveButton.saveButtonState = article.savedDate == nil ? .longSave : .longSaved
        saveButton.tag = tag
        saveButton.addTarget(self, action: #selector(saveButtonPressed(sender:forEvent:)), for: .touchUpInside)
        saveButton.saveButtonDelegate = self
        var saveButtons = visibleSaveButtons[tag] ?? []
        saveButtons.insert(saveButton)
