项目作者: chris-huxtable

项目描述 :
An easy-to-use singleton which manages `NSWindow` and `NSWindowController` objects
高级语言: Objective-C
项目地址: git://github.com/chris-huxtable/CBHWindowManager.git
创建时间: 2019-08-14T03:26:52Z
项目社区:https://github.com/chris-huxtable/CBHWindowManager

开源协议:ISC License

下载


CBHWindowManager

release
pod
licence
coverage

An easy-to-use singleton which manages NSWindow and NSWindowController objects.

Examples:

Adding a controller so that once the window is closed both the window and controller are released.

  1. SomeWindowController *controller = [[[SomeWindowController class] alloc] initWithWindowNibName:@"SomeWindowNibName"];
  2. [[CBHWindowManager sharedManager] manageController:controller];

Adding a controller with a key so that it may be found by name.

  1. /// Create and adding the controller withe key.
  2. SomeWindowController *controller = [[[SomeWindowController class] alloc] initWithWindowNibName:@"SomeWindowNibName"];
  3. [[CBHWindowManager sharedManager] manageController:controller withKey:@"SomeWindowKey"];
  4. // ...
  5. /// Lookup the controller
  6. SomeWindowController *controller = [[CBHWindowManager sharedManager] controllerForKey:@"SomeWindowKey"];

Finding a controller with a key and if not creating and adding one.

  1. /// Lookup the controller in the manager. If it's found, return early.
  2. SomeWindowController *controller = (SomeWindowController *)[[CBHWindowManager sharedManager] controllerForKey:@"SomeWindowKey"];
  3. if ( controller ) { return controller; }
  4. /// If the controller is not in the manager create it and add it to the manger.
  5. controller = [[[SomeWindowController class] alloc] initWithWindowNibName:@"SomeWindowNibName"];
  6. [[CBHWindowManager sharedManager] manageController:controller withKey:@"SomeWindowKey"];
  7. return controller;

Licence

CBHWindowManager is available under the ISC license.