我的应用程序中有一个类,它处理所有控件,并且所有函数和变量都存储在其中。如何向其中添加处理应用程序启动的函数?
所以基本上我需要在我的类以及应用程序委托(delegate)中处理“applicationDidFinishLaunching”。
我该怎么做?
最佳答案
NSApplication
发送 NSApplicationDidFinishLaunchingNotification
通知,因此您应该能够在您的类中注册该通知:
- (void)awakeFromNib
{
NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(appDidLaunch:)
name:NSApplicationDidFinishLaunchingNotification
object:nil];
}
- (void)appDidLaunch:(NSNotification*)notification
{
NSLog(@"Blast off!");
}
这里有一个通用模式,Cocoa 类具有带有传递单个通知参数的方法签名的委托(delegate)方法,例如 -(void)applicationDidFinishLaunching:(NSNotification*)notification
委托(delegate)NSApplication
的方法,在调用委托(delegate)方法时也会发布通知。
例如,NSWindow
有很多带有这种签名的委托(delegate)方法,例如:
- (void)windowDidResize:(NSNotification *)notification
如果你看the docs对于此方法,您将看到传递给此委托(delegate)方法的通知是一个 NSWindowDidResizeNotification。然后,您可以在 notifications section 中找到有关此通知的更多详细信息。 NSWindow
文档。
当可能有多个对象对委托(delegate)信息感兴趣时,通常会使用这种类型的委托(delegate)方法。
关于objective-c - 在应用程序启动时执行某些操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2891584/