2011-06-25 55 views
0

我一直在將我的cocos2D iOS遊戲移植到Mac,並且它沒有問題,但我不明白爲什麼每次啓動應用程序時都會打開兩個窗口。如何在發佈時避免雙窗口打開?

其中之一是與主菜單場景和我給的屬性和名稱的cocos2d窗口,但有另一個應用程序名稱(我的意思是Xcode項目名稱)的空白窗口。我想這是一個微不足道的問題,但我真的無法避免出現這個窗口。

我在做什麼錯?

這是我的AppDelegate窗口初始化:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{ 

CCDirectorMac *director = (CCDirectorMac*) [CCDirector sharedDirector]; 

    //Posiciona ventana y define escalado 

    NSRect aFrame=[[NSScreen mainScreen] frame]; 

CGSize winSize = CGSizeMake(1024,768); 

CC_DIRECTOR_INIT(winSize); 
[self.window showsResizeIndicator]; 

[director setResizeMode:kCCDirectorResize_AutoScale]; 
[director setProjection:kCCDirectorProjection2D]; 

[window_ setContentAspectRatio:NSMakeSize(winSize.width,winSize.height)]; 
[window_ setStyleMask:[window_ styleMask] | NSResizableWindowMask | NSMiniaturizableWindowMask]; 
[window_ setTitle:@"Barman Hero"]; 

aFrame=[[NSScreen mainScreen] frame]; 
if (aFrame.size.width<=winSize.width || aFrame.size.height<=winSize.height) [window_ zoom:self]; 
[window_ center]; 
[glView_ setFrameSize:NSMakeSize(window_.frame.size.width,window_.frame.size.height-22)]; 

// Enable "moving" mouse event. Default no. 
[window_ setAcceptsMouseMovedEvents:NO]; 

.....

.....

.....

//Carga escena principal 
[[CCDirectorMac sharedDirector] runWithScene:[MainMenu scene]]; 

}

在此先感謝。

+0

'self.window'和'window_'是同一個對象嗎? – 2011-06-25 20:44:52

回答

2

很可能您在MainMenu.xib中定義了一個半自動打開的窗口。從MainMenu.xib和任何可能引用它的代碼中刪除窗口,它不應再打開第二個窗口。

+0

謝謝Percy,但我的項目中沒有任何MainMenu.xib。實際上,我根本沒有任何xib文件。 – rmvz3

+1

@ rmvz3:再次檢查。應用程序不會隱式地創建一個窗口,所以窗口存在的唯一兩個可能的原因是要麼在代碼中創建它,要麼在正在加載的一個nib中(最可能是MainMenu,它會自動加載)。從Xcode 4開始,MainMenu.xib位於支持文件組中;在Xcode 3和其他可能更老的模板中,它位於Resources組中。您也可以查看您的項目文件夾;它將位於en.lproj或English.lproj文件夾中。 –

+0

是!!你是對的!!。 MainMenu.xib隱藏在English.lproj文件夾中,並未在Xcode中列出。我發現它在發現者,雙擊和刪除窗口,現在一切都很好。非常感謝您的寶貴幫助。 :) – rmvz3

相關問題