Why is Window.MenuBarVisible deprecated?

I noticed now that Window.MenuBarVisible has disappeared from the Window Inspector and is listed in docs as depreciated? My app relies on the ability to hide and show UI elements on demand. I have a “working” window that should show dock/taskbar like normal, and then a viewer window that occupies all available desktop space (including multiple monitors) and so sets Window.MenuBarVisible to FALSE.

How can I replicate this without Window.MenuBarVisible? A workaround that makes my entire app MenuBar-less is not satisfactory. Would really appreciate any advice. TBH I feel like lately things are just being depreciated arbitrarily

Deprecated doesn’t mean you can’t use it for now. Don’t panic. Someone here will no doubt help soon.

The effects of MenuBarVisible have been separated out to offer more control, but also to stop hijacking macOS in a very 1998 way.

The newer way (you’ll need to figure out what Geoff renamed these to for API 2):

  • To hide a MenuBar: Set the Window.MenuBar property to None (or nil)
  • To implement a “viewer window”: Set Window.FullScreen = true

Edit: To have a window that spans multiple screens but is above the dock, you may need to use declares to set the Window’s layer level. This is non-standard behavior.

This is my main concern as my app is specifically for displaying information across* multiple screens. Not sure how to achieve this but pretty sure Window.FullScreen limits you to one screen.

I should add that it always worked fine with simple Window.MenuBarVisible = False

Window type is Plain Box, I calculate the left-most, top-most screen’s Left and Top (in some cases these are negatives), as well as the entire width and height of all screens, and make a canvas that basically covers them all. Some of my customers have like 4, 6 or even 8 screens that run my app.