Как отключить параметр Показать панель вкладок в приложении MacOS Catalyst

У меня есть приложение MacOS Catalyst, которое поддерживает несколько окон, но в нем есть встроенные вкладки, и поэтому я хотел бы отключить опцию «Показать панель вкладок» в встроенной панели меню.

Как вы можете видеть на изображении ниже, это фактически нарушает мой макет, и, поскольку мое приложение никогда не будет использовать эту функцию, я бы хотел избавиться от нее, есть ли способ сделать это?

Ненужная панель вкладок

Вот вариант, который я хотел бы полностью отключить:

введите описание изображения здесь


person ThiagoAM    schedule 29.11.2020    source источник


Ответы (1)


Это решение, которое мне дал разработчик Apple прошлым летом, который вызывает метод AppKit для отключения вкладок и пунктов меню:

Class _nswindow = NSClassFromString(@"NSWindow");
[_nswindow setAllowsAutomaticWindowTabbing:NO];

Вам нужно сделать уродливую вещь NSClassFtomString, потому что AppKit недоступен в Catalyst, но можно отправить приложение, которое делает это (я делаю).

Да, и это, очевидно, Objective-C, а не Swift. Вызвать «частный» API из Swift сложно; Я рекомендую либо использовать ObjC, либо использовать динамическую библиотеку, например: Dynamic.NSWindow.setAllowsAutomaticWindowTabbing(false).

person Adam    schedule 14.12.2020