macos - 显示菜单项中的工作表

标签 macos cocoa nswindowcontroller

我有一个 cocoa 应用程序,它从主窗口调用工作表。这在主窗口上的 NSButton 上工作得很好。但是,当我从 MainMenu 项调用时,该工作表显示为单独的窗口。这是预期的行为,还是只是我的预期:)我已经研究过this question ..

我用以下代码调用工作表:

-(IBAction) showSettingsSheet:(id)sender {
    NSLog(@"%s", __FUNCTION__);
    settingsSheetController = [[SettingsSheetController alloc] initWithWindowNibName:@"SettingsSheet"];
    [settingsSheetController beginSheetModalForWindow:self.window completionHandler:^(NSUInteger returnCode) {

        if (returnCode == kSettingsSheetReturnedOk) {
            NSLog(@"Settings Returned ok");

        } else if (returnCode == kSettingsSheetReturnedCancel) {
            NSLog(@"Settings Returned cancel");
        } else {
            //self.categoryDisplayString = @"Oops!";
            NSLog(@" Ooops");
        }

    }];

}

更新

这是属性检查器的设置方式:

enter image description here

最佳答案

尝试这样,如果您想在主菜单中显示工作表,请尝试以下步骤:-

enter image description here

取消选中窗口属性检查器内的“启动时可见”选项,您希望将其显示为附有屏幕截图的工作表

关于macos - 显示菜单项中的工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18978615/

相关文章:

objective-c - NSNumber 的 @property 属性?

cocoa - 如何在mac根目录的下一级搜索文件?

macos - 如何判断 NSWorkspaceWillPowerOffNotification 是由重启还是关机引起的?

objective-c - 如何使用 xib 文件正确实现 NSWindowController 子类

cocoa - 如何在基于 NSDocument 的 Cocoa 应用程序中使用 NSViewController

cocoa - _OBJC_CLASS 从 AppDelegate.o 中的 objc-class-ref 引用

ios - Core Audio 从 AudioQueue(或 AudioUnits)获取数据到内存中

macos - OS X 中的性能计数器 API

javascript - 为什么与特殊 unicode 字符匹配的正则表达式在 OS X 上的浏览​​器之间返回不同的结果?

objective-c - 使用 NSCollectionView 创建时 NSTextView 不会滚动