justo una versión modificada basada en @Regexident ' s para nuevos macOS. La jerarquía de vista cambió para la nueva interfaz de usuario de macOS, por lo que la versión original no funciona. El código modificado es el siguiente (funciona en MacOS 10.13):
- (void)verticalizeButtonsForWindow:(NSWindow *)aWindow {
// New view hierarchy.
NSView *titleBarContainerView = aWindow.contentView.superview.subviews[1];
titleBarContainerView.frame = NSMakeRect(titleBarContainerView.frame.origin.x, titleBarContainerView.frame.origin.y - 60.0 + titleBarContainerView.frame.size.height, titleBarContainerView.frame.size.width, 60.0);
NSView *titleBarView = titleBarContainerView.subviews[0];
titleBarView.frame = NSMakeRect(0.0, 0.0, titleBarView.frame.size.width, 60.0);
NSArray *titleBarSubviews = titleBarView.subviews;
NSView *closeButton = [titleBarSubviews objectAtIndex:0];
NSRect closeButtonFrame = [closeButton frame];
NSView *minimizeButton = [titleBarSubviews objectAtIndex:2];
NSRect minimizeButtonFrame = [minimizeButton frame];
NSView *zoomButton = [titleBarSubviews objectAtIndex:1];
NSRect zoomButtonFrame = [zoomButton frame];
// Coordinate changed: add instead of minus.
[minimizeButton setFrame:NSMakeRect(closeButtonFrame.origin.x, closeButtonFrame.origin.y + 20.0, minimizeButtonFrame.size.width, minimizeButtonFrame.size.height)];
[zoomButton setFrame:NSMakeRect(closeButtonFrame.origin.x, closeButtonFrame.origin.y + 40.0, zoomButtonFrame.size.width, zoomButtonFrame.size.height)];
}
Resultado pantalla: 
me resulta molesto y en contra de directrices de diseño de Apple. Realmente desearía que no siguieran haciéndolo. Pone un mal ejemplo. – JeremyP