Я набрал код в delphi, чтобы вставить элемент состояния в строку состояния системы, код работает хорошо и отображается статус. Я использовал прозрачную иконку, и я должен щелкнуть именно по значку (не справа), чтобы открыть меню. Но если я нажимаю на прозрачную область значка, ничего не происходит! Я пишу один и тот же код XCode, и все в порядке.Строка состояния 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