Hacker News new | past | comments | ask | show | jobs | submit login

A couple of nitpicks about the process:

> NSMakeRect/NSMakePoint

Generally I prefer the actual constructors.

> NSWindow.BackingStoreType.buffered/NSApplication.ActivationPolicy.regular

You can just use .buffered/.regular.

> let _ = NSApplication.shared

Just _ = NSApplication.shared works: https://github.com/saagarjha/DarkNight/blob/0e3aef8559b634ce...

> Rizwan Sattar wrote a neat workaround that monkey-patches NSBundle, which I’ve translated to Swift 4 below

Don't do this, it will stop working (crash!) once you update your Swift version and the compiler is smart enough to start making direct calls. As far as I am aware, this is the correct way to do it: https://github.com/saagarjha/DetailsViewer/blob/master/Detai...




Thanks, these are nice clean ups! I added a note in the blog post that points to your Swizzler example. The final version of Multi didn't end up needing that NSBundle monkey-patch though since it was a "proper app" with an Info.plist file.


Yeah, an actual Info.plist is much better :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: