我正在尝试为Mac上的SWT Cocoa端口创建NSPopover。 Here是在Objective-C中实现它的方法,但我想知道如何使用SWT实现同样的功能。 Popover看起来像这样:
在SWT的可可端口中没有“NSPopover”,因此它不存在于API中。
我该如何创建呢?
你可以尝试这样的事情:
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.graphics.Region;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class PopOver {
public static void main(String[] a) {
Display display = new Display();
final Shell shell = new Shell(display,SWT.NO_TRIM);
Region region = new Region();
region.add(new Rectangle(0,0,200,200));
region.add(new int[]{200,90,220,100,200,110});
shell.setRegion(region);
shell.setSize(region.getBounds().width, region.getBounds().height);
shell.setBackground(display.getSystemColor(SWT.COLOR_DARK_GRAY));
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}