Update NSViewController with lifeCycle methods

This commit is contained in:
Gregory John Casamento 2023-10-01 07:44:01 -04:00
parent 24eee8e7dd
commit 4bb0270759
2 changed files with 72 additions and 27 deletions

View file

@ -91,6 +91,17 @@ APPKIT_EXPORT_CLASS
- (void) viewWillLoad;
- (void) viewDidLoad;
- (void) viewWillAppear: (BOOL)animated;
- (void) viewIsAppearing: (BOOL)animated;
- (void) viewDidAppear: (BOOL)animated;
- (void) viewWillDisappear: (BOOL)animated;
- (void) viewDidDisappear: (BOOL)animated;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_10, GS_API_LATEST)
- (void) dismissViewController: (NSViewController *)viewController;
- (void) dismissController: (id)sender;
#endif
@end
#endif // OS_API_VERSION

View file

@ -81,6 +81,26 @@
{
}
- (void) viewWillAppear: (BOOL)animated
{
}
- (void) viewIsAppearing: (BOOL)animated
{
}
- (void) viewDidAppear: (BOOL)animated
{
}
- (void) viewWillDisappear: (BOOL)animated
{
}
- (void) viewDidDisappear: (BOOL)animated
{
}
- (void)setRepresentedObject:(id)representedObject
{
ASSIGN(_representedObject, representedObject);
@ -133,6 +153,7 @@
}
[self viewWillLoad];
[self viewWillAppear: NO];
nib = [[NSNib alloc] initWithNibNamed: [self nibName]
bundle: [self nibBundle]];
if ((nib != nil) && [nib instantiateNibWithOwner: self
@ -141,6 +162,7 @@
_vcFlags.nib_is_loaded = YES;
// FIXME: Need to resolve possible retain cycles here
[self viewDidLoad];
[self viewDidAppear: NO];
}
else
{
@ -164,6 +186,45 @@
return _nibBundle;
}
// Dismiss
- (void) dismissViewController: (NSViewController *)viewController
{
[viewController viewDidDisappear: NO];
}
- (void) dismissController: (id)sender
{
[self dismissViewController: self];
}
// NSSeguePerforming methods...
- (void)performSegueWithIdentifier: (NSStoryboardSegueIdentifier)identifier
sender: (id)sender
{
NSStoryboardSegue *segue = [_segueMap objectForKey: identifier];
[self prepareForSegue: segue
sender: sender];
[segue perform];
}
- (void)prepareForSegue: (NSStoryboardSegue *)segue
sender: (id)sender
{
// do nothing in base class method...
}
- (BOOL)shouldPerformSegueWithIdentifier: (NSStoryboardSegueIdentifier)identifier
sender: (id)sender
{
return YES;
}
- (NSString *) description
{
return [NSString stringWithFormat: @"%@ - view = %@", [super description], view];
}
// NSCoding
- (id) initWithCoder: (NSCoder *)aDecoder
{
self = [super initWithCoder: aDecoder];
@ -202,33 +263,6 @@
}
}
// NSSeguePerforming methods...
- (void)performSegueWithIdentifier: (NSStoryboardSegueIdentifier)identifier
sender: (id)sender
{
NSStoryboardSegue *segue = [_segueMap objectForKey: identifier];
[self prepareForSegue: segue
sender: sender];
[segue perform];
}
- (void)prepareForSegue: (NSStoryboardSegue *)segue
sender: (id)sender
{
// do nothing in base class method...
}
- (BOOL)shouldPerformSegueWithIdentifier: (NSStoryboardSegueIdentifier)identifier
sender: (id)sender
{
return YES;
}
- (NSString *) description
{
return [NSString stringWithFormat: @"%@ - view = %@", [super description], view];
}
@end
@implementation NSViewController (NSEditorRegistration)