 final class BatchReplacementViewController: NSViewController {
     
     private dynamic var hasInvalidSetting = false
+    private dynamic var canPerform = true
     private dynamic var resultMessage: String?
     
     

    
    @objc private func validateObject() {
        
        self.hasInvalidSetting = (self.representedObject as? BatchReplacement)?.replacements.contains(where: { $0.localizedError != nil }) ?? false
    }
    
}

        self.resultMessage = nil
        
        guard
            self.canPerform,
            let textView = TextFinder.shared.client,
            let string = textView.string
            else {
