Menu 如何逃离'@';JFace菜单标签中的字符
我们正在使用JFace菜单管理器。我们的一些菜单项包含Menu 如何逃离'@';JFace菜单标签中的字符,menu,swt,eclipse-rcp,jface,Menu,Swt,Eclipse Rcp,Jface,我们正在使用JFace菜单管理器。我们的一些菜单项包含@字符。例如,如果我们将电子邮件显示为菜单项列表 当我们这样做时,菜单不会按原样显示@字符,而是引入一个空格,如下所示 创建菜单项的代码如下所示: IMenuManager mgr = ... mgr.add( new Action( "dataloader.dev@datasert.com" ) { @Override public void run() { // Action run } } ); 我的问
@
字符。例如,如果我们将电子邮件显示为菜单项列表
当我们这样做时,菜单不会按原样显示@
字符,而是引入一个空格,如下所示
创建菜单项的代码如下所示:
IMenuManager mgr = ...
mgr.add( new Action( "dataloader.dev@datasert.com" ) {
@Override
public void run() {
// Action run
}
} );
我的问题是,我们如何避开@
字符
通常,特殊字符可以通过复制进行转义。然而,在这种情况下,JFace中似乎有一个bug(或特性?)阻止了这一点
正如评论中所建议的,唯一的解决办法似乎是在菜单标签的末尾附加一个
@
字符。应用此技巧后,菜单标签将正确显示。标签右侧只添加了一些额外的空格。通常,特殊字符可以通过复制来转义。然而,在这种情况下,JFace中似乎有一个bug(或特性?)阻止了这一点
正如评论中所建议的,唯一的解决办法似乎是在菜单标签的末尾附加一个
@
字符。应用此技巧后,菜单标签将正确显示。只有一些额外的空间被添加到标签的右侧。当我将它们加倍时,SWT显示第一个@
字符,但在其后添加空间。例如,当我指定foo@bar.org
时,它显示为foo@bar.org
另一个有趣的发现。对于包含@
的项目,我只是在另一个@
后面加了后缀。现在,菜单项按原样显示(末尾可能有用户看不到的空格)。因此,如果有一个@
,它将显示为空格。如果有两个@
s,它会按原样显示第一个@
,并将第二个转换为空格。您似乎正在使用macOS,是否可以发布用于创建菜单项的代码?我就是这么做的。IMenuManager管理器=//获取菜单管理器管理器添加(新操作(“菜单标签”){@Override public void run(){//Action run});@
字符在哪里?在“菜单标签”中?请编辑原始帖子并添加代码,使其保持可读性。当我将@
翻一番时,SWT会显示第一个@
字符,但会在其后添加空格。例如,当我指定foo@bar.org
时,它显示为foo@bar.org
另一个有趣的发现。对于包含@
的项目,我只是在另一个@
后面加了后缀。现在,菜单项按原样显示(末尾可能有用户看不到的空格)。因此,如果有一个@
,它将显示为空格。如果有两个@
s,它会按原样显示第一个@
,并将第二个转换为空格。您似乎正在使用macOS,是否可以发布用于创建菜单项的代码?我就是这么做的。IMenuManager管理器=//获取菜单管理器管理器添加(新操作(“菜单标签”){@Override public void run(){//Action run});@
字符在哪里?在“菜单标签”中?请编辑原始帖子并添加代码,以保持可读性。