Прежде всего, вам нужно непрозрачное окно без полей:
NSPanel *window = [[NSPanel alloc] initWithContentRect:windowFrame styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];
[window setOpaque:NO];
[window setBackgroundColor:[NSColor clearColor]];
Рекомендуется использовать NSPanel, поскольку он может стать ключевым только при необходимости (см. setBecomesKeyOnlyIfNeeded
).
Вам также необходимо иметь свой собственный подкласс NSPanel и переопределить canBecomeKeyWindow
, если вам нужно какое-то взаимодействие с пользователем внутри этого окна.
Затем вы можете расположить представление содержимого в xib или создать собственный подкласс NSView
, чтобы представить представление содержимого вашего окна, и установить его в пользовательское окно:
[window setContentView:<your content view>];
И, наконец, настоящее окно на экране:
[window makeKeyAndOrderFront:nil];
Если вы хотите, чтобы ваше окно появлялось поверх других окон, вы можете играть со свойством windowLevel
класса NSWindow
, но будьте осторожны и следуйте рекомендациям Apple Human Interface Guidelines:)