I want to be able to add a button to the title bar of all windows that open on a Mac.
The button will go on the right hand side, opposite the X - +
buttons.
This is asked about windows of my app here:
How can I create Yosemite-style unified toolbar in Interface Builder?
But I want the button to appear on all windows, of any app, that are opened on the Mac. Obviously, this will only happen once the user has installed this program.
I understand that this is essentially "plugging into" the OS's UI, but I have seen other apps do this, which makes me feel that it is do-able.
Here is screenshot where I want the button:
This is really a two-part question. As for how to get a button up there, I’d suggest using -[NSWindow standardWindowButton:]
to get an existing window button and its superview (i. e. the title bar):
NSButton *closeButton = [window standardWindowButton:NSWindowCloseButton]; // Get the existing close button of the window. Check documentation for the other window buttons.
NSView *titleBarView = closeButton.superview; // Get the view that encloses that standard window buttons.
NSButton *myButton = …; // Create custom button to be added to the title bar.
myButton.frame = …; // Set the appropriate frame for your button. Use titleBarView.bounds to determine the bounding rect of the view that encloses the standard window buttons.
[titleBarView addSubview:myButton]; // Add the custom button to the title bar.
The plugging-in is probably easiest to do as a SIMBL plug-in.