2010-04-14 60 views
0

我試圖直接從代碼運行窗口爲模態。 我的程序啓動並顯示一個主要的NSWindows。一個線程仍在運行,以查看用戶是否具有有效分發。如果他不需要運行模式。我的意思是,我沒有在界面中單擊按鈕。我在界面構建器上設計了一個NSWindow用於設置密碼,我只想在我的驗證是不成功。 我已經測試並意識到這些方法負責模式窗口運行只能在IBAction環境中工作。如何從可可代碼運行模態窗口?

//This doesn't work 
-(void) showPasswordWindow 
{ 
     [NSApp runModalForWindow:[self window]]; 

} 

//this works But its not useful for me =(
- (IBAction) passwordWindowButton:(id)sender 
{ 
    [NSApp runModalForWindow:[self window]]; 
} 

請幫助這個新手=)

回答

0

一件事來檢查:你叫主線程的方法?

檢查,這增加showPasswordWindow

NSLog(@"Main thread? %d", [NSThread isMainThread]); 
+0

Yes.The驗證始於此方法: - (空)的applicationDidFinishLaunching:(NSNotification *)aNotification – Leandro 2010-04-14 20:08:23

+0

萊昂德羅:我認爲cobbal的意思是「你叫' runModalForWindow:'在主線程上?「。你從哪裏開始你的輔助線程並不重要。 – 2010-04-14 20:49:05

+0

是的,夥計們。現在我明白了。感謝您的幫助! =) 我得到的答案是 「主線程?1」 – Leandro 2010-04-15 12:41:05