Я застрял! Очевидно ... потому что я задаю вопрос здесь.Минимизация/миниатюризация какао NSWindow без заголовка
Я создал собственные пользовательские элементы управления окнами для своего приложения OS X/cocoa. Кнопка закрытия работает отлично - никаких проблем. Кнопка «Свернуть» не работает вообще, когда я отключу заголовок.
Так что, когда строка заголовка на как на картинке выше, и я ударил этот метод, минимизирующий работает отлично:
ViewController.h
@interface ViewController : NSViewController {
- (IBAction)minimize:(id)sender;
@property (strong) IBOutlet NSButton *btn_minimize;
}
@end
ViewController. м
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)minimize:(id)sender {
[[NSApp mainWindow] performMiniaturize:self];
}
-(IBAction)terminate:(id)sender {
[NSApp terminate:self];
}
@end
Тогда, если я отключу строку заголовка, этот же метод перестанет работать. Нет ошибок, ничего. Я пробовал оба: [[NSApp mainWindow] miniaturize:nil];
, а также [[NSApp mainWindow] performMiniaturize:self];
. Ни один из них не работал. На самом деле ... обе работают, если строка заголовка включена. Но как только я отключу его, не работай.
Мысли/комментарии?
О, я использую раскадровки, Xcode 7, и нацеливаю 10.10 и используя 10.11 SDK, если это вообще имеет значение.
Заранее спасибо.
Когда вы отключите/скройте его, что является статусом главного меню (должна быть проверка, что означает, что неподдерживаемые пункты меню выделены серым цветом). Если они доступны, они работают? (вызывают ли они ваш viewController?) –
[NSWindow performMiniaturize:] вызывает [minimButton performClick: esi], + [NSWindow _minimizeAll]: вызовы [ebx standardWindowButton: 0x1] isEnabled]! = 0x0) && ([ebx isVisible]! = 0x0). Ручное переопределение вызывает private _minimizeToDock. Это означает, что если вы хотите, чтобы они работали, вы используете частные селекторы или выпадаете эти кнопки. –
Вы хотите оставить эти кнопки в этом месте? – mangerlahn