Я создаю MenuBar-приложение с несколькими всплывающими окнами, NSMenu и некоторыми обычными окнами для настроек и тому подобного. Я создал NSController, чтобы держать все содержимое StatusBar вместе и уведомлять всплывающее окно для открытия и закрытия. У всплывающего окна есть собственный PopupWindowController и xib-файл, который работает как шарм. Но я не могу заставить его работать с NSMenu (в моем случае он подклассифицирован как RightClickMenu)NSController с собственным xib-файлом, но без представления
В IB я создал другой .xib, называемый StatusBarController.xib (с StatusBarController как владелец файла) с меню и связанным это к розетке. ...
@class RightClickMenu;
@interface StatusBarController : NSController <NSMenuDelegate> {
IBOutlet RightClickMenu *rightClickMenu;
}
@property (nonatomic, retain) RightClickMenu *rightClickMenu;
...
Мои AppDelegate имеет свойство IBOutlet StatusBarController и главный .xib, который связан с объектом NScontroller.
@class StatusBarController;
@interface MyAppDelegate : NSObject <NSApplicationDelegate> {
IBOutlet StatusBarController *statusBarController;
...
Надеется, что вы можете помочь ...
приветствий
Вы используете NSController для привязок? Это не ваш типичный контроллер; вы обычно используете его подклассы NSObjectCOntroller или NSArrayController. NSWindowControllers и NSVIewControllers вообще не связаны с NSController. – Vervious
Хорошо. Я использую NSViewController для всплывающего окна, но я не уверен, как обращаться с StatusBarController. NSObjectController будет лучше, но он все еще не работает ... я зарегистрировал 'NSLog (@"% o ", self.rightClickMenu) => 0', но он, похоже, не загружен. Я попытался подклассировать StatusMenuContoller из NSViewController и зарегистрировал 'NSLog (@"% o ", self.view)', который дал мне идентификатор ... –
Для печати объектов вам следует использовать '% @' вместо '% o'; попробуй это вместо этого? Кроме того, позвольте мне перефразировать: NSObjectControllers/NSArrayControllers/NSControllers не предназначены для использования в качестве контроллера графического интерфейса, а скорее как контроллер для привязок/данных ядра. Я бы подклассифицировал NSObject вместо этого, чтобы сделать StatusBarController, потому что это не похоже, что вы управляете представлением или окном с ним. Кроме того, извините, если я отвлекся, потому что я запутался в структуре вашего приложения/в чем проблема :) – Vervious