J'ai une application de données de base basée sur les documents. La fenêtre principale du document comporte un certain nombre de vues, chacune étant contrôlée par sa propre variable NSViewController
, commutée si nécessaire. Je veux que chacun de ces contrôleurs de vue puisse faire défiler une feuille modale personnalisée à partir de la fenêtre de document. Cependant, comme les vues sont séparées et non dans la MyDocument
nib
, je ne peux pas lier la vue à la fenêtre de document dans IB. Cela signifie que lorsque j'appelle
[NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];
Je fournis nil pour mainWindow
et la feuille apparaît donc détachée.
Aucune suggestion?
Merci beaucoup
Vous pouvez utiliser [[self view] window]
En effet, c'est self.view.window
(Swift).
Cela peut être nul dans viewDidLoad () et viewWillAppear (), mais est défini correctement au moment où vous obtenez viewDidAppear ().
Si votre contrôleur peut accéder à la sous-classe NSDocument , vous pouvez utiliser -windowForSheet
plus sur Tim Closs répondre:
-(void)viewDidAppear
{
self.view.window.title = @"title-viewDidAppear"; //this only works when and after viewDidAppeer is called
}
-(void)viewWillDisappear
{
self.view.window.title = @"title-viewWillDisappear"; //this only works before and when viewWillDisappear is called
}