Objective c 正确使用窗口
我正在开发我的第一个Cocoa Mac OS X程序,想知道显示windows的最佳方法 我将我的Objective c 正确使用窗口,objective-c,cocoa,Objective C,Cocoa,我正在开发我的第一个Cocoa Mac OS X程序,想知道显示windows的最佳方法 我将我的AppController/main menu.xib作为主启动窗口,但在启动时取消选中main menu.xib窗口以查看。我这样做是因为在应用程序加载时,我正在检查它们是否已登录。如果没有,我想显示Login.xib窗口,而不是main menu.xib。登录后,我将打开main menu.xib窗口并关闭LoginController我在-(void)applicationdFinishLau
AppController
/main menu.xib
作为主启动窗口,但在启动时取消选中main menu.xib窗口以查看。我这样做是因为在应用程序加载时,我正在检查它们是否已登录。如果没有,我想显示Login.xib
窗口,而不是main menu.xib
。登录后,我将打开main menu.xib
窗口并关闭LoginController
我在-(void)applicationdFinishLaunching:(NSNotification*)aNotification方法中有此功能
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSLog(@"app delegate");
[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"]]];
BOOL didAuth = NO;
GTMOAuth2Authentication *auth = [GTMClasses authForService];
if (auth) {
didAuth = [GTMOAuth2WindowController authorizeFromKeychainForName:kKeychainName authentication:auth];
}
if (didAuth) {
[[DataClass sharedInstance] setIsSignedIn:YES];
NSLog(@"Already signed in %@", auth);
NSLog(@"Window: %@", self.window);
// SHOW MainMenu.xib here
} else {
NSLog(@"Not signed in %@", auth);
loginController = [[LoginController alloc] initWithWindowNibName:@"Login" owner:self];
[[loginController window] makeKeyAndOrderFront:self];
}
}
我看到AppController的awakeFromNib
在ApplicationIDFinishLoadingWithOptions
之前被调用。是否最好将该代码放在我的awakeFromNib
中
如果没有,从AppDelegate打开MainMenu.xib窗口的最佳方式是什么
如果你有更好的方法,会是什么
PS:AppController是NSObject
的子类,因此我无权访问windowDidLoad
或windowWillLoad
awakeFromNib
是第一个执行的方法
您还可以使用alloc
或init
方法
你可以把你的登录认证码放在那里,没有任何问题
您一定已经了解了应用程序的生命周期,以及加载方法的方式和时间
您是说我应该将代码从上面移动到AppController init或awakeFromNib中?