デルタでコードを書き込んでシステムステータスバーにステータス項目を挿入すると、コードは正常に機能し、ステータス項目が表示されます。私は透明なアイコンを使用したので、メニューを開くにはアイコン(rect)ではなくアイコンをクリックしてください。しかし、アイコンの透明な領域をクリックすると、何も起こりません! Xcodeで同じコードを書きますが、すべてのことがOKです。OSXシステムステータスバー
どのようなボディにもこのケースのアイデアはありますか? ステータスアイコン(色分けされた透明点)の任意のポイントをクリックしてメニューを開きたいとします。
コード:
procedure createStatusItem;
var
app_delg: AppDelegate;
statusBar: NSStatusBar;
statusItem: NSStatusItem;
menu: NSMenu;
pImage: Pointer;
nsImage: NSImage;
begin
app_delg := TAppDelegate.Create;
TNSApplication.Wrap(TNSApplication.OCClass.sharedApplication()).setDelegate(AppDelegate(app_delg));
statusBar := TNSStatusBar.Wrap(TNSStatusBar.OCClass.systemStatusBar);
menu := TNSMenu.Wrap(TNSMenu.Alloc.initWithTitle(NSSTR('')));
statusItem := statusBar.statusItemWithLength(NSVariableStatusItemLength);
statusItem.retain;
statusItem.setHighlightMode(true);
statusItem.setAction(sel_getUid('onMenuClicked:'));
statusItem.setMenu(menu);
pImage := TNSImage.Alloc.initWithContentsOfFile(NSSTR('icon.ico'));
nsImage := TNSImage.Wrap(pImage);
statusItem.setImage(nsImage);
nsImage.release;
end;
感謝。
OS Xの –
には、「システムステータスバーは」「何のシステムステータスバーはありません」があります! 親愛なる友人、私はあなたのコメントに驚き、このコードが何をすべきか教えていただけますか? NSStatusBar * statusBar = [NSStatusBar systemStatusBar]; –
質問に使用しているコードを含めて試してみてください。 – RRUZ