OTSOverlayView allows you to overlay one view on top of another. The code has been inspired by two personal requirements. The first was to be able to ‘lock-down’ the interface of Digestive when Bento was running because of the potential issues that could be caused by using both applications simultaneously. The second was a need to prevent users from interacting with a window whilst some background tasks were being performed. Items such as the background colour, opacity and blur effect of the overlay are fully customisable and when you dismiss the overlay the focus returns to the control previously selected in the underlying view.
You can read more about OTSOverlayView and download the code in an example project from the OTSOverlayView page.