Java Mac的RCP应用-碳还是可可?
首先,我不是Mac开发者,也是一个非常随意的Mac用户,所以请接受我的问题 我有一个相当大的RCP应用程序,主要针对windows和linux,在这两个平台上都运行良好。现在,我试着在OSX(carbon x86)上运行它,发现它看起来很难看,一点也不像Mac,而且使用起来相当笨拙。例如,这里有一件最简单的事情,我甚至不能让它看起来笔直,无论我做什么,这些按钮都不会按我希望的方式放置:这就是它在windows上的外观,用于比较(相同的代码库): 它降低了按钮的高度,没有正确放置按钮,对齐混乱等等 这些只是冰山一角,可能还有更大的问题 所以,我有两个问题: 1) 我是否应该用RCP应用程序为在MAC上的存在而奋斗呢?也许这是一条死胡同,没有人真的这么做?毕竟苹果和java没有太多的混合 2) 如果我这么做的话,我应该瞄准碳还是可可?我将期待最新的mac开发。我只喜欢其中一个,你会选哪一个?标准是什么Java Mac的RCP应用-碳还是可可?,java,macos,swt,rcp,Java,Macos,Swt,Rcp,首先,我不是Mac开发者,也是一个非常随意的Mac用户,所以请接受我的问题 我有一个相当大的RCP应用程序,主要针对windows和linux,在这两个平台上都运行良好。现在,我试着在OSX(carbon x86)上运行它,发现它看起来很难看,一点也不像Mac,而且使用起来相当笨拙。例如,这里有一件最简单的事情,我甚至不能让它看起来笔直,无论我做什么,这些按钮都不会按我希望的方式放置:这就是它在windows上的外观,用于比较(相同的代码库): 它降低了按钮的高度,没有正确放置按钮,对齐混乱等等
更新: 我为cocoa创建了发行版,所有这些奇怪的渲染问题都消失了。使用eclispe rcp 3.7。一切看起来都很完美
按钮和SWT.ARROW
位在碳上看起来不合适时,最好知道bug注释中可能有一个解决方法。此外,有时会有人发布您可以集成的修复程序(因为作为RCP应用程序,您可以发布自己的SWT版本)。例如,在Mac操作系统中使用的功能首先出现在bugzilla中
IDialogConstants
获取这些默认值(在DLU中),然后转换为像素。例如:
int marginW = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.HORIZONTAL_MARGIN);
int marginH = Dialog.convertVerticalDLUsToPixels(fontMetrics, IDialogConstants.VERTICAL_MARGIN);
int hSpacing = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.HORIZONTAL_SPACING);
int vSpacing = Dialog.convertVerticalDLUsToPixels(fontMetrics, IDialogConstants.VERTICAL_SPACING);
您可能希望使用一个对话框和复合基类来为您提供这一点,这样您就有了简单的访问器对话框
类处理将默认按钮(确定、是、接受等)放置在正确的位置。如果您开始在对话框按钮栏中放置奇怪的按钮,请务必注意SWT可能会为您重新排序这些按钮M1
而不是CTRL
.app
。Mac用户希望有一个.app
和里面的资源,他们不希望有一个.app
文件夹和一堆其他不必要的文件夹。Mac的PDE构建的输出看起来就像其他平台一样——一个包含启动器的文件夹,位于插件
和功能
目录旁边。作为构建后步骤,您可以将插件
和功能
目录移动到.app
目录中,并编辑启动器以反映更改。(我认为,互联网上有一个perl脚本,如果没有,我可以发布一个。)谢谢,爱德华,这真是太好了helpful@awoodland谁结束了这个问题?我实际上收到了一个非常有价值的答案,其中有大量的参考资料和实用的专业知识。如果你没有受到干扰,你可能会收到更多。IMHO-过度缓和。我认为在你真正看到有价值的答案即将到来之后,关闭这个话题并不好。