首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计前导Mas

设计前导Mas
EN

Stack Overflow用户
提问于 2017-12-07 01:04:40
回答 3查看 1.1K关注 0票数 4

我最近为MAC商店打包了我的应用程序,但被拒绝了。下面是评审小组给我的信息。当我使用开发模式进行测试时,一切都很好,但我无法想象哪里出了问题。任何想法都将不胜感激。应用程序是用电子.开发的。

设计前导 您的应用程序的用户界面与macOS人机界面指南不一致。 具体来说,我们发现当用户关闭主应用程序窗口时,没有菜单项可以重新打开它。 下一步 应用程序应该实现一个列出主窗口的窗口菜单,以便重新打开它,或者在另一个菜单项中提供类似的功能。macOS人机界面指南规定“菜单栏始终包含窗口菜单”。 或者,如果应用程序是一个单一窗口应用程序,那么在主窗口关闭时保存数据并退出应用程序可能是合适的。 有关在macOS中管理windows的信息,请参阅准则中的以下部分: 菜单栏及其菜单 窗口菜单 “文件”菜单 点击船坞 窗口行为 请评估如何实现适当的更改,并重新提交您的应用程序审查。

EN

回答 3

Stack Overflow用户

发布于 2018-11-18 22:35:00

问题是,在通过按x button将应用程序最小化之后,用户无法从码头再次打开它。

解决这一问题的一种方法是在单击terminate时只对应用程序进行x button处理。

我也有同样的问题,并通过在AppDelegate中添加这个函数来修正它。此解决方案适用于Swift 4.2

代码语言:javascript
复制
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
    return true
}

现在,当单击x button时,应用程序将终止。

票数 5
EN

Stack Overflow用户

发布于 2019-12-03 00:50:43

如果您正在使用Xamarin,请编辑您的AppDelegate.cs以创建一个菜单以重新打开主窗口:

代码语言:javascript
复制
    public class AppDelegate : FormsApplicationDelegate
    {
        NSWindow window;

        public override NSWindow MainWindow
        {
            get
            {
                return window;
            }
        }

        public AppDelegate()
        {
            var style = NSWindowStyle.Closable | NSWindowStyle.Resizable | NSWindowStyle.Titled;
            var rect = new CoreGraphics.CGRect(100, 100, 1024, 768);

            window = new NSWindow(rect, style, NSBackingStore.Buffered, false);
            window.TitleVisibility = NSWindowTitleVisibility.Hidden;
        }

        private NSMenu MakeMainMenu()
        {
            // top bar app menu
            NSMenu menubar = new NSMenu();
            NSMenuItem appMenuItem = new NSMenuItem();
            menubar.AddItem(appMenuItem);

            NSMenu appMenu = new NSMenu();
            appMenuItem.Submenu = appMenu;

            // add separator
            NSMenuItem separator = NSMenuItem.SeparatorItem;
            appMenu.AddItem(separator);

            // add open menu item
            string openTitle = String.Format("Open {0}", "MyApp");
            var openMenuItem = new NSMenuItem(openTitle, "o", delegate
            {
                // Get new window
                window.MakeKeyAndOrderFront(this);
            });
            appMenu.AddItem(openMenuItem);

            // add quit menu item
            string quitTitle = String.Format("Quit {0}", "MyApp");
            var quitMenuItem = new NSMenuItem(quitTitle, "q", delegate
            {
                NSApplication.SharedApplication.Terminate(menubar);
            });
            appMenu.AddItem(quitMenuItem);
            return menubar;
        }

        public override void DidFinishLaunching(NSNotification notification)
        {
            // finally add menu
            NSApplication.SharedApplication.MainMenu = MakeMainMenu();
            // Insert code here to initialize your application
            Forms.Init();
            //Load Application
            LoadApplication(new App());
            //Did Finish Launching
            base.DidFinishLaunching(notification);
        }

        public override void WillTerminate(NSNotification notification)
        {
            // Insert code here to tear down your application
        }
    }

如果您正在使用Cocoa工作,请使用特定的语言进行同样的操作。

使用以下指令重新打开窗口:

代码语言:javascript
复制
[window makeKeyAndOrderFront:self];
票数 0
EN

Stack Overflow用户

发布于 2020-12-09 13:56:33

对于电子应用程序,您可以将此代码添加到您的index.jsmain.js中以解决此问题:

代码语言:javascript
复制
app.on('window-all-closed', () => {
  app.quit();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47686008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档