2012-02-13 3 views
4

Я разрабатываю приложение, в котором панель инструментов может отображаться/скрываться пользователем с помощью кнопки. Проблема заключается в следующем: Если пользователь выбирает скрыть панель инструментов, а затем переходит в полноэкранный режим, отображается панель инструментов.NSToolbar, показанный при вводе полноэкранного режима

Пользовательский интерфейс был создан программно (т. Е. Не использует Interface Builder).

Это создание панели инструментов в приложение делегата:

mainToolbar = [[NSToolbar alloc] initWithIdentifier:MAIN_TOOLBAR]; 
[mainToolbar setAllowsUserCustomization:NO]; 
[mainToolbar setDisplayMode:NSToolbarDisplayModeIconOnly]; 
[mainToolbar setDelegate:self]; 
[window setToolbar: mainToolbar]; 

Эти действия, выполняемые с помощью кнопок:

-(void)hideToolbar { 
    editing = YES; 
    [mainToolbar setVisible:NO]; 
} 

-(void)showToolbar { 
    editing = NO; 
    [mainToolbar setVisible:YES]; 
} 

Я пытался исправить это с помощью методов окна делегата, но по-прежнему панель инструментов отображается при входе в полноэкранный режим независимо от значения editing.

- (void)windowDidEnterFullScreen:(NSNotification *)notification { 
    [mainToolbar setVisible:!editing]; 

}

- (void)windowDidExitFullScreen:(NSNotification *)notification { 
[mainToolbar setVisible:!editing]; 

}

Большое спасибо заранее!

+0

сделал вам понять, как это могло быть, я мучаюсь из-за той же проблемы. – mohacs

+0

Нет, извините! – Mariana

ответ

9

Я не мог найти способ сохранить скрытое/отображаемое состояние панели инструментов, когда окно выходит за полноэкранный режим, но вы можете настроить панель инструментов всегда скрытой в полноэкранном режиме и оживлять, когда пользователь переходит к в верхней части экрана. В вашем делегате окна вы можете установить NSApplicationPresentationOptions, чтобы вернуть NSApplicationPresentationAutoHideToolbar в качестве одного из параметров. Шахта выглядит следующим образом:

- (NSApplicationPresentationOptions)window:(NSWindow *)window willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)proposedOptions 
{ 
    return (NSApplicationPresentationFullScreen |  
      NSApplicationPresentationHideDock |   
      NSApplicationPresentationAutoHideMenuBar | 
      NSApplicationPresentationAutoHideToolbar); 
} 

Вот соответствующая документация: https://developer.apple.com/library/mac/#documentation/General/Conceptual/MOSXAppProgrammingGuide/FullScreenApp/FullScreenApp.html

+0

большое спасибо – susemi99

Смежные вопросы