繁体   English   中英

Delphi FMX TMainMenu第一个菜单项在OSX中不显示,OK在WIndows中显示

[英]Delphi FMX TMainMenu first menu item doesn't show in OSX, OK in WIndows

我在Delphi Seattle中创建了一个多设备应用程序,并添加了一个带有MenuItem1和MenuItem2的TMainMenu(没有别的)。 构建和运行OSX,只有MenuItem2显示。 构建和运行Windows,两个菜单项都显示。 我没有区别对待这两个菜单项。 两者都只是添加而不是以任何方式定制。 还有其他人经历过吗?

Mac菜单栏中的顶级项目通常如下所示:

Apple/system menu ('About this Mac', 'System Preferences...', etc.)
Application menu ('About XXX', 'Services', 'Hide XXX', 'Hide Others',
  'Show All', 'Quit XXX')
File menu
Edit Menu
...

在FMX中(除了第一个版本),TMainMenu中的第一个顶级项目代表应用程序菜单。 因此,您需要在File X之前添加一个项目(或者您当前的第一个项目),它只显示在OS X上; 然后,它的子项应包括Mac应用程序菜单的常用项。 要实现这些项的行为,您可以使用标准操作(TFileHideApp,TFileHideAppOthers,TFileExit)。 或者,更详细:

  • 如果还没有,请在表单中添加TActionList组件
  • 双击操作列表以显示操作列表编辑器
  • 单击添加按钮的下拉箭头,然后选择新标准操作...
  • 选择所有TFileHideApp,TFileHideAppOthers和TFileExit,然后单击“确定”
  • 返回表单,双击TMainMenu组件打开菜单编辑器
  • 在第一个当前存在的项目之前添加一个项目; 在Object Inspector中,调用它(比方说)mnuApp
  • 将至少四个子项添加到mnuApp; 使用Object Inspector,将第一个的Action属性分配给FileHideApp1,将第二个的Action属性分配给FileHideAppOthers,将第四个分配给FileExit1; 将第三个文本设置为连字符( - )以使其成为分隔符
  • 关闭菜单编辑器
  • 如果尚不存在,请通过双击Object Inspector中的条目为该表单创建一个OnCreate处理程序
  • 如果没有在OS X上运行,则添加到FormCreate一行来隐藏mnuApp。相反,如果你已经有一个File | Exit菜单项,那么如果在OS X上运行则应该隐藏它,因为现在功能已在应用程序菜单下退出:

...

procedure TForm1.FormCreate(Sender: TObject);
begin
  mnuApp.Visible := (TOSVersion.Platform = pfMacOS);
  itmExit.Visible := (TOSVersion.Platform <> pfMacOS);
end;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM