首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过C++ Builder在Mac的苹果菜单栏中放置菜单栏?

如何通过C++ Builder在Mac的苹果菜单栏中放置菜单栏?
EN

Stack Overflow用户
提问于 2017-01-17 02:15:30
回答 2查看 815关注 0票数 1

我找到了一个使用TMenuBar.UseOSMenu属性为Windows和Mac放置主菜单的示例。但这似乎只适用于德尔菲。我在FMX的TMenuBar组件C++Builder中找不到相同的属性。

有人知道如何在C++的Mac上的苹果菜单栏中放置菜单栏吗?

我正在使用C++ Builder10.1柏林更新2。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-18 20:32:37

在柏林10.1、德尔福或UseOSMenu都没有C++的房产。它是在XE3中删除的:

FireMonkey XE3中的新单位和变化

UseOSMenu已被移除。对于多平台应用程序,您应该使用FMX.Menus.TMainMenu,这是一个非可视组件。

另见:

在FireMonkey应用程序中使用菜单

为OS和Windows创建菜单 对目标系统使用正确的控件(OS与Windows)。

  • 对于Windows应用程序,请使用TMenuBar控件:
代码语言:javascript
复制
- The main menu is placed in the client area of the form (standard for Windows). 
- The menu items are not on the Mac OS X menu bar (nonstandard for OS X). 

  • 对于Mac应用程序,请使用TMainMenu组件:
代码语言:javascript
复制
- The main menu is placed in the non-client area of the Windows form (nonstandard for Windows). 
- Menu items are placed on the Mac OS X menu bar (standard for OS X). 

票数 0
EN

Stack Overflow用户

发布于 2021-04-22 16:14:00

诉诸$IFDEF并在代码中构建菜单是可行的。但令人奇怪的是,FMX没有以更便携的方式处理主菜单。

事实上,TMainMenu并不是很糟糕,有一些问题:在Mac上,第一个定义的菜单变成了应用程序菜单,您给它的名称被应用程序名称所取代。因此,有必要创建带有虚拟名称的第一个菜单(例如,"App"),并在该菜单上使用通常的“约”命令。然后,File菜单是要定义的第二个菜单。在PC上运行时,需要删除第一个虚拟的"App“菜单,否则它会显示出来。在Mac (但不在PC上) FMX添加了一个未请求的“窗口”菜单作为最后一个菜单;我不知道如何防止这种情况发生。

另外一个问题是ShortCuts。我还没有找到在TMainMenu的Items Editor中以可移植方式设置这些内容的方法,即在PC上使用Ctrl,在Mac上使用Cmd。哦,好吧,也许唯一好的解决方案就是用完全独立的TMenuBar、TMainMenu和$IFDEFs来构建所有的代码!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41688066

复制
相关文章

相似问题

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