Skip to content

Instantly share code, notes, and snippets.

@Lessica
Created April 17, 2021 16:30
Show Gist options
  • Save Lessica/2b6c3040123cb6957ea5572a9d9d9be4 to your computer and use it in GitHub Desktop.
Save Lessica/2b6c3040123cb6957ea5572a9d9d9be4 to your computer and use it in GitHub Desktop.
Make toggleSidebar(_:) available again while firstResponder locates inside nested NSSplitView
import Cocoa
class MyStackView: NSStackView {
override func responds(to aSelector: Selector!) -> Bool {
if aSelector == #selector(NSSplitViewController.toggleSidebar(_:)) {
return false
}
return super.responds(to: aSelector)
}
override func supplementalTarget(forAction action: Selector, sender: Any?) -> Any? {
if action == #selector(NSSplitViewController.toggleSidebar(_:)) {
var responder = nextResponder
while responder != nil && !(responder is NSSplitView) {
responder = responder?.nextResponder
}
if let splitView = responder as? NSSplitView {
return splitView
}
}
return super.supplementalTarget(forAction: action, sender: sender)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment