Skip to content

Instantly share code, notes, and snippets.

@smic
Created May 5, 2016 06:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save smic/3f1bdf8e9affe3af57abebdc71bd4263 to your computer and use it in GitHub Desktop.
Save smic/3f1bdf8e9affe3af57abebdc71bd4263 to your computer and use it in GitHub Desktop.
Example to iterate over a linked list like the responder chain
import Cocoa
let window = NSWindow(contentRect: NSRect(origin: .zero, size: NSSize(width: 500.0, height: 500.0)), styleMask: 0, backing: .Buffered, defer: false)
var responder = window.firstResponder
var responderIndex = 1
repeat {
print("Responder: \(responder)")
if let nextResponder = responder.nextResponder {
responder = nextResponder
responderIndex = responderIndex.successor()
} else {
break
}
} while true
@smic
Copy link
Author

smic commented Jun 15, 2016

Yay for Swift 3!!!

for responder in sequence(first: window.firstResponder, next: { $0.nextResponder }) {
    print("Responder: \(responder)")
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment