#objective-c #osx-lion #nswindow #minimize #titlebar
#objective-c #osx-lion #nswindow #свернуть #строка заголовка
Вопрос:
У меня возникла эта проблема в OSX Lion при входе / выходе из полноэкранного режима. Я безуспешно пытался повторно применить маску стиля:
NSUInteger styleMask = NSResizableWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTitledWindowMask;
styleMask |= NSTexturedBackgroundWindowMask;
window = [[NSWindow alloc] initWithContentRect:windowFrame
styleMask: styleMask
backing:NSBackingStoreBuffered
defer:NO];
и полноэкранное уведомление
(void)didExitFull:(NSNotification *)notification {
NSUInteger styleMask=[window styleMask];
[window setStyleMask:styleMask|NSMiniaturizableWindowMask];
}
Кажется, что кнопка миниатюризации снова не включается.
Я также обнаружил проблемы с удобством использования этого пользовательского интерфейса в MacOSX 10.6 здесь
Комментарии:
1. Я пошел дальше и понял, что по какой-то причине кнопка миниатюризации была просто отключена. Поэтому добавление
code
[[window standardWindowButton:NSWindowMiniaturizeButton] setEnabled:YES];code
снова активирует кнопку. Проблема в том, что это происходит только тогда, когда окно обновляется, получая фокус от задней части к передней.
Ответ №1:
Пожалуйста, переопределите следующую функцию
- (NSApplicationPresentationOptions) window:(NSWindow *)window willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)proposedOptions
{
return (proposedOptions| NSApplicationPresentationAutoHideToolbar);
}
И не устанавливайте styleMask после exitFullscreen . Пусть это сделает система.