2016-03-15 51 views
2

后面来在可可应用程序中使用我对某些事件,比如点击按钮调用一个故事板:援引故事板全部打开的窗口

NSStoryboard *storyBoard = [NSStoryboard storyboardWithName:@"SendStoryboard" bundle:nil]; 
NSWindowController *myController = [storyBoard instantiateControllerWithIdentifier:@"SendIdentifier"]; 
[myController showWindow:nil]; 

这个代码能够调用故事板的,但我不明白为什么它正在落后于已经在finder中打开的其他窗口。 请帮我解决问题。我只希望它在每个窗口的顶部。

回答

2

使用下面的代码:

- (void)windowDidLoad { 
[super windowDidLoad]; 
NSRunningApplication* app = [NSRunningApplication 
          runningApplicationWithProcessIdentifier: pID]; 
[app activateWithOptions: NSApplicationActivateAllWindows];} 

,或者使用下面的代码:

NSArray* apps = [NSRunningApplication 
       runningApplicationsWithBundleIdentifier:@"Your App BundleID"]; 
[(NSRunningApplication*)[apps objectAtIndex:0] 
activateWithOptions: NSApplicationActivateIgnoringOtherApps]; 

[[NSApplication sharedApplication] activateIgnoringOtherApps : YES]; 
+0

它工作得很好,但一旦当我关闭的故事板,并再次尝试调用它在相同的情况下,即使在完全执行程序之后,故事板仍然不可见,无任何例外。你能说出它发生这种事情的原因以及它如何解决? – Smit

+0

你用断点检查过它吗?该代码正在第二次执行? – jigs

+0

是的,一旦我尝试了断点,我也尝试了没有断点。 – Smit