问题:我需要一个具有可变行高的SWT表(JFace TableViewer).事实上,我在我的开发机器(运行Ubuntu 10.10)上解决了这个问题.不幸的是,这在Windows和Mac上都不起作用.
最初,我以为我没有正确使用这些库.但到现在为止,我担心我想要做的事情在Windows上根本不可能.我希望有人能说服我.
重现:我没有在这里提供我的代码,而是构建了一个简单的程序来重现问题.我从以下Snipplet开始:
我修改了update()方法,为目录生成两行文本,为文件生成一行(模拟具有可变行高的环境):
...
if (file.isDirectory()) {
cell.setText(styledString.toString() + "\n"
+ styledString.toString());
cell.setImage(IMAGE1);
} else {
cell.setImage(IMAGE2);
}
...
这在Linux上可以正常工作,但在Windows上,所有行都具有相同的高度.具体来说,只能看到一行.
接下来,我试图通过使measure()更加智能来帮助SWT.所以我重写了measure(),如下所示:
protected void measure(Event event, Object element) {
if (((File) element).isDirectory()) {
event.height = 32;
} else {
event.height = 16;
}
super.measure(event, element);
}
结果:所有行都具有高度32.再次,这在Linux上按预期工作.
我担心,在Windows上,所有行都必须是相同的高度.这对我来说是一个显而易见的事.任何人都可以证实这一点,甚至更好,提供一种解决方法吗?
谢谢!
我正在将功能正常的浏览器扩展迁移到清单 v3。问题:我希望仅在单击浏览器扩展图标时加载内容脚本。但是,脚本始终会加载。当我尝试上传到 chrome 商店时,我收到以下消息,这是我想避免的:
由于主机权限的原因,您的扩展程序可能需要深入审查,这将延迟发布。
我怀疑这与“行动”有关,但我不知道如何解决这个问题。这是清单:
{
"manifest_version": 3,
"name": "__MSG_extName__",
"description": "__MSG_extDescription__",
"key": "...",
"version": "1.0.0",
"icons": { ... },
"background": {
"service_worker": "/background.js"
},
"permissions": [
"storage"
],
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"/content.js"
]
}
],
"web_accessible_resources": [
{
"resources": [
"/assets/*",
"/options.html"
],
"matches": [
"<all_urls>"
]
}
],
"options_page": "options.html",
"action": {}
}
Run Code Online (Sandbox Code Playgroud)
最后一点:我认为我需要activeTab许可。但同样,我的问题是我想最小化所需的权限。
提前致谢!