从 ViewController Cocoa Mac Storyboard Xcode 6 以外的其他类触发的工作表模式



我有一个简单的项目,其中包含Mac OS X应用程序的故事板。我在NSView上放置了一个按钮,并创建了一个名为OtherClass的新类。然后我把一个IBAction链接到OtherClass.h。现在我想在主窗口中显示一个模型表。当使用ViewController作为类时,我可以简单地做:

NSWindow *window = [self.view window];
NSAlert *alert = [[NSAlert alloc]init];
[alert beginSheetModalForWindow:window completionHandler:nil];

但是我如何在另一个班级做到这一点呢?如果这很重要,我正在使用 Xcode 6.3。

感谢您的帮助

您可以简单地引用与按钮关联的窗口对象。所以你可以从你的其他类像这样调用

-(IBAction)callSheet:(id)sender {
       NSWindow *window;
if([sender respondsToSelector(@selector(window))]){
 window = [sender window];
     }else if([sender respondsToSelector(@selector(view))]){
    window = [sender view].window; 
    }
 //Now call your alert
    }

最新更新