Какао приложение войти в полноэкранный режим - PullRequest
0 голосов
/ 09 марта 2011

Я занимаюсь разработкой простого приложения, которое использует полноэкранное окно.

Окно содержит вид, который содержит кнопку, изображение и т. Д., Но когда я вхожу в полноэкранный режим со следующими строками:

NSWindow* tmp = [self window];
    [tmp setStyleMask:NSBorderlessWindowMask];
    [tmp setFrame:[tmp frameRectForContentRect:[[tmp screen] frame]]display:YES animate:NO];
    [tmp setBackingType:NSBackingStoreBuffered];
    screenRect = [[NSScreen mainScreen] frame];
    int windowLevel = CGShieldingWindowLevel();
    [self.window setLevel:windowLevel]; 

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

Я публикую все свои AppController здесь:

 -(id)init {
    self = [super initWithWindowNibName:@"MainWindow"];

    NSWindow* tmp = [self window];
    [tmp setStyleMask:NSBorderlessWindowMask];
    [tmp setFrame:[tmp frameRectForContentRect:[[tmp screen] frame]]display:YES animate:NO];
    [tmp setBackingType:NSBackingStoreBuffered];
    screenRect = [[NSScreen mainScreen] frame];

  /**   
   //  [[tmp standardWindowButton:NSWindowMiniaturizeButton] setHidden:YES];
   //  [[tmp standardWindowButton:NSWindowZoomButton] setHidden:YES];

    self.window = [[NSWindow alloc] initWithContentRect:screenRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO screen:[NSScreen mainScreen]];
  **/
    int windowLevel = CGShieldingWindowLevel();
    [self.window setLevel:windowLevel];
    return self;
}


// We need to be layer-backed to have subview transitions.
-(void)awakeFromNib {
    [[self window] setContentSize:[topMenu frame].size];
    [[[self window] contentView] addSubview:topMenu];
    [topMenu enterFullScreenMode:[NSScreen mainScreen] withOptions:nil];
    [[[self window] contentView] setWantsLayer:YES];
}


- (void)dealloc
{

    [super dealloc];
}

- (void)windowDidLoad
{
    [super windowDidLoad];

    // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.


    [topMenu_controller performAnimation]; 
    return;


}

1 Ответ

1 голос
/ 09 марта 2011

Вы можете использовать пружины и распорки Интерфейсного Разработчика, чтобы установить поведение автоматического изменения размера представления:

http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/IB_UserGuide/Layout/Layout.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...