Я хочу знать, как закрыть NSPopover программно, не прикасаясь снаружи, потому что я хочу, чтобы назначить его к действию (например, KeyDown Введите ключ или другой ярлык)Как закрыть NSPopover программно
, потому что я открываю NSPopover с ярлыком, было бы более логично было бы закрыть, нажав другую команду
поделимся мой код:
EdiciondeCuentasWC.h (NSWindowController), откуда я называю мой NSPopover
#import "EdicionDeCuentasWC.h"
#import "CambiarTipoCuentaVC.h"
@interface EdicionDeCuentasWC()<NSPopoverDelegate>{
CambiarTipoCuentaVC *cambiarTipoCuentaVC;
}
@property (strong) IBOutlet NSPopover *popoverClasifCuentas;
@end
@implementation EdicionDeCuentasWC
-(void)mostrarPopupCambiarTipoCta{
cambiarTipoCuentaVC = (CambiarTipoCuentaVC *) _popoverCambiarTipoCuentas.contentViewController;
cambiarTipoCuentaVC.nombre_tipo_cta = arrayActivos[renglonSeleccionado][@"nombre_tipo_cta"];
cambiarTipoCuentaVC.prioridad_cta = arrayActivos[renglonSeleccionado][@"prioridad_cta"];
NSTableCellView *cellView = [_activoTableView viewAtColumn:0
row:renglonSeleccionado
makeIfNecessary:NO];
[_popoverClasifCuentas setDelegate:self];
[cambiarTipoCuentaVC inicializarDatos];
[_popoverCambiarTipoCuentas showRelativeToRect:[cellView bounds] ofView:cellView preferredEdge:NSMaxXEdge];
}
#pragma mark NSPopoverDelegate
-(void)popoverWillClose:(NSNotification *)notification{
NSPopover *popover = (NSPopover *)[notification object]; //there I have the code for managing all the returning parameters...
}
@end
И код моего NSPopover находится внутри NSViewController (CambiarTipoCuentaVC), но внутри там нет ни [self close], ни [self performClose], чтобы закрыть его от кнопки или ярлыка, любая помощь, чтобы заставить ее работать. I 'd оценить ...
вещь ... У меня есть все мои программы внутри NSViewController, и нет ни [self close], ни [self performClose], чтобы загрузить мой код. – Jesus
Сообщениям не нужно идти в 'self'. Учитывая, что у вас есть ссылка на popover, вы можете отправить ему сообщение, используя эту ссылку. –