Add @objc for the two delegate methods implemented. This fixes a bug where the Add button wasn’t enabled after your typing.
This commit is contained in:
parent
fdefaef66e
commit
75199d2546
@ -30,8 +30,8 @@ class AddFeedWindowController : NSWindowController {
|
|||||||
private var urlString: String?
|
private var urlString: String?
|
||||||
private var initialName: String?
|
private var initialName: String?
|
||||||
private var initialFolder: Folder?
|
private var initialFolder: Folder?
|
||||||
fileprivate weak var delegate: AddFeedWindowControllerDelegate?
|
private weak var delegate: AddFeedWindowControllerDelegate?
|
||||||
fileprivate var folderTreeController: TreeController!
|
private var folderTreeController: TreeController!
|
||||||
|
|
||||||
private var userEnteredTitle: String? {
|
private var userEnteredTitle: String? {
|
||||||
var s = nameTextField.stringValue
|
var s = nameTextField.stringValue
|
||||||
@ -45,7 +45,6 @@ class AddFeedWindowController : NSWindowController {
|
|||||||
var hostWindow: NSWindow!
|
var hostWindow: NSWindow!
|
||||||
|
|
||||||
convenience init(urlString: String?, name: String?, folder: Folder?, folderTreeController: TreeController, delegate: AddFeedWindowControllerDelegate?) {
|
convenience init(urlString: String?, name: String?, folder: Folder?, folderTreeController: TreeController, delegate: AddFeedWindowControllerDelegate?) {
|
||||||
|
|
||||||
self.init(windowNibName: NSNib.Name("AddFeedSheet"))
|
self.init(windowNibName: NSNib.Name("AddFeedSheet"))
|
||||||
self.urlString = urlString
|
self.urlString = urlString
|
||||||
self.initialName = name
|
self.initialName = name
|
||||||
@ -54,15 +53,12 @@ class AddFeedWindowController : NSWindowController {
|
|||||||
self.folderTreeController = folderTreeController
|
self.folderTreeController = folderTreeController
|
||||||
}
|
}
|
||||||
|
|
||||||
func runSheetOnWindow(_ w: NSWindow) {
|
func runSheetOnWindow(_ hostWindow: NSWindow) {
|
||||||
|
hostWindow.beginSheet(window!) { (returnCode: NSApplication.ModalResponse) -> Void in
|
||||||
hostWindow = w
|
|
||||||
hostWindow.beginSheet(window!) { (returnCode: NSApplication.ModalResponse) -> Void in
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override func windowDidLoad() {
|
override func windowDidLoad() {
|
||||||
|
|
||||||
if let urlString = urlString {
|
if let urlString = urlString {
|
||||||
urlTextField.stringValue = urlString
|
urlTextField.stringValue = urlString
|
||||||
}
|
}
|
||||||
@ -78,26 +74,13 @@ class AddFeedWindowController : NSWindowController {
|
|||||||
updateUI()
|
updateUI()
|
||||||
}
|
}
|
||||||
|
|
||||||
private func updateUI() {
|
|
||||||
|
|
||||||
var addButtonEnabled = false
|
|
||||||
let urlString = urlTextField.stringValue
|
|
||||||
if urlString.rs_stringMayBeURL() {
|
|
||||||
addButtonEnabled = true
|
|
||||||
}
|
|
||||||
|
|
||||||
addButton.isEnabled = addButtonEnabled
|
|
||||||
}
|
|
||||||
|
|
||||||
// MARK: Actions
|
// MARK: Actions
|
||||||
|
|
||||||
@IBAction func cancel(_ sender: Any?) {
|
@IBAction func cancel(_ sender: Any?) {
|
||||||
|
|
||||||
cancelSheet()
|
cancelSheet()
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func addFeed(_ sender: Any?) {
|
@IBAction func addFeed(_ sender: Any?) {
|
||||||
|
|
||||||
let urlString = urlTextField.stringValue
|
let urlString = urlTextField.stringValue
|
||||||
let normalizedURLString = (urlString as NSString).rs_normalizedURL()
|
let normalizedURLString = (urlString as NSString).rs_normalizedURL()
|
||||||
|
|
||||||
@ -114,35 +97,32 @@ class AddFeedWindowController : NSWindowController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func localShowFeedList(_ sender: Any?) {
|
@IBAction func localShowFeedList(_ sender: Any?) {
|
||||||
|
|
||||||
NSApplication.shared.sendAction(NSSelectorFromString("showFeedList:"), to: nil, from: sender)
|
NSApplication.shared.sendAction(NSSelectorFromString("showFeedList:"), to: nil, from: sender)
|
||||||
hostWindow.endSheet(window!, returnCode: NSApplication.ModalResponse.continue)
|
hostWindow.endSheet(window!, returnCode: NSApplication.ModalResponse.continue)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: NSTextFieldDelegate
|
// MARK: NSTextFieldDelegate
|
||||||
|
|
||||||
func controlTextDidEndEditing(_ obj: Notification) {
|
@objc func controlTextDidEndEditing(_ obj: Notification) {
|
||||||
|
|
||||||
updateUI()
|
updateUI()
|
||||||
}
|
}
|
||||||
|
|
||||||
func controlTextDidChange(_ obj: Notification) {
|
@objc func controlTextDidChange(_ obj: Notification) {
|
||||||
|
|
||||||
updateUI()
|
updateUI()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private extension AddFeedWindowController {
|
private extension AddFeedWindowController {
|
||||||
|
|
||||||
func cancelSheet() {
|
private func updateUI() {
|
||||||
|
addButton.isEnabled = urlTextField.stringValue.rs_stringMayBeURL()
|
||||||
|
}
|
||||||
|
|
||||||
|
func cancelSheet() {
|
||||||
delegate?.addFeedWindowControllerUserDidCancel(self)
|
delegate?.addFeedWindowControllerUserDidCancel(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func selectedContainer() -> Container? {
|
func selectedContainer() -> Container? {
|
||||||
|
|
||||||
return folderPopupButton.selectedItem?.representedObject as? Container
|
return folderPopupButton.selectedItem?.representedObject as? Container
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user