我无法理解为什么beginSheetModalForWindow无效。
以下是MyAppDelegate.h的内容
@interface MyAppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window;
}
@property (assign) IBOutlet NSWindow *window;
@end
MyAppDelegate.m
@synthesize window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
}
@end
在我的AppController.m中,我有这些代码行
NSAlert *alert = [[[NSAlert alloc] init] autorelease];
[alert setMessageText:@"Alert."];
[alert beginSheetModalForWindow:window
modalDelegate:self
didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:)
contextInfo:nil];
问题是我收到错误:使用未声明的标识符窗口。
我想念的是什么?
答案 0 :(得分:0)
'window'是属于MyAppDelegate实例的变量。为了在AppController中使用相同的窗口变量,AppController需要对窗口的引用。我不确定这两个类之间的关系是什么,但通常当一个类需要提供另一个类来引用其实例变量之一时,引用将在方法调用中传递。例如,您可以将一个setWindow:方法添加到AppController,并让MyAppDelegate调用该方法,提供变量'window'