From 75199d25466a6bcb2b32b38d6af08591fcbb67a2 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sun, 27 Jan 2019 21:09:25 -0800 Subject: [PATCH] =?UTF-8?q?Add=20@objc=20for=20the=20two=20delegate=20meth?= =?UTF-8?q?ods=20implemented.=20This=20fixes=20a=20bug=20where=20the=20Add?= =?UTF-8?q?=20button=20wasn=E2=80=99t=20enabled=20after=20your=20typing.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AddFeed/AddFeedWindowController.swift | 40 +++++-------------- 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/NetNewsWire/MainWindow/AddFeed/AddFeedWindowController.swift b/NetNewsWire/MainWindow/AddFeed/AddFeedWindowController.swift index 5458bbabf..8ba07d2fb 100644 --- a/NetNewsWire/MainWindow/AddFeed/AddFeedWindowController.swift +++ b/NetNewsWire/MainWindow/AddFeed/AddFeedWindowController.swift @@ -30,8 +30,8 @@ class AddFeedWindowController : NSWindowController { private var urlString: String? private var initialName: String? private var initialFolder: Folder? - fileprivate weak var delegate: AddFeedWindowControllerDelegate? - fileprivate var folderTreeController: TreeController! + private weak var delegate: AddFeedWindowControllerDelegate? + private var folderTreeController: TreeController! private var userEnteredTitle: String? { var s = nameTextField.stringValue @@ -45,7 +45,6 @@ class AddFeedWindowController : NSWindowController { var hostWindow: NSWindow! convenience init(urlString: String?, name: String?, folder: Folder?, folderTreeController: TreeController, delegate: AddFeedWindowControllerDelegate?) { - self.init(windowNibName: NSNib.Name("AddFeedSheet")) self.urlString = urlString self.initialName = name @@ -54,15 +53,12 @@ class AddFeedWindowController : NSWindowController { self.folderTreeController = folderTreeController } - func runSheetOnWindow(_ w: NSWindow) { - - hostWindow = w - hostWindow.beginSheet(window!) { (returnCode: NSApplication.ModalResponse) -> Void in + func runSheetOnWindow(_ hostWindow: NSWindow) { + hostWindow.beginSheet(window!) { (returnCode: NSApplication.ModalResponse) -> Void in } } override func windowDidLoad() { - if let urlString = urlString { urlTextField.stringValue = urlString } @@ -78,26 +74,13 @@ class AddFeedWindowController : NSWindowController { updateUI() } - private func updateUI() { - - var addButtonEnabled = false - let urlString = urlTextField.stringValue - if urlString.rs_stringMayBeURL() { - addButtonEnabled = true - } - - addButton.isEnabled = addButtonEnabled - } - // MARK: Actions @IBAction func cancel(_ sender: Any?) { - cancelSheet() } @IBAction func addFeed(_ sender: Any?) { - let urlString = urlTextField.stringValue let normalizedURLString = (urlString as NSString).rs_normalizedURL() @@ -114,35 +97,32 @@ class AddFeedWindowController : NSWindowController { } @IBAction func localShowFeedList(_ sender: Any?) { - NSApplication.shared.sendAction(NSSelectorFromString("showFeedList:"), to: nil, from: sender) hostWindow.endSheet(window!, returnCode: NSApplication.ModalResponse.continue) } // MARK: NSTextFieldDelegate - func controlTextDidEndEditing(_ obj: Notification) { - + @objc func controlTextDidEndEditing(_ obj: Notification) { updateUI() } - func controlTextDidChange(_ obj: Notification) { - + @objc func controlTextDidChange(_ obj: Notification) { updateUI() } } private extension AddFeedWindowController { - func cancelSheet() { + private func updateUI() { + addButton.isEnabled = urlTextField.stringValue.rs_stringMayBeURL() + } + func cancelSheet() { delegate?.addFeedWindowControllerUserDidCancel(self) } - func selectedContainer() -> Container? { - return folderPopupButton.selectedItem?.representedObject as? Container } - }