我正在開發一個小應用程序。在第一個窗口中,我可以選擇創建一個新帳戶。我爲此使用了一個「繼續」按鈕。點擊此按鈕後,將打開另一個用於創建新帳戶的窗口。我希望一旦打開此窗口,就不會再加載此nib文件的其他實例。即使用戶再次點擊「繼續」,已經打開的nib文件實例(用於創建新帳戶的實例)應該在前面。
有沒有任何API可以幫助檢查一個nib實例是否已經加載?如果已經加載實例,如何防止加載一個筆尖?
或者可能是給出了內存中加載的所有nib列表的東西?
在此先感謝...
UPDATE:
@interface WelcomePageController : NSObject {
IBOutlet NSTextField * userNameField;
IBOutlet NSPopUpButton * actionList;
IBOutlet NSWindow * welcomePage;
CreateNewAccountWindowController * createNewAccountWindowController;
}
-(IBAction) changePasswordButton:(id)sender;
-(IBAction) logOutButton:(id)sender;
-(IBAction) continueButton:(id)sender;
@end
@implementation WelcomePageController
-(void)windowDidUpdate:(id)sender{
UserInfo * user=[UserInfo uInfoObject];
[userNameField setStringValue:[user.firstName stringByAppendingFormat:@" %@!", user.lastName]];
if ([user.userType isEqual:@"Standard"]) {
[actionList setAutoenablesItems:NO];
[[actionList itemAtIndex:2]setEnabled:NO];
[[actionList itemAtIndex:3]setEnabled:NO];
}
else {
[actionList setAutoenablesItems:YES];
}
}
-(IBAction) changePasswordButton:(id)sender{
[NSBundle loadNibNamed:@"ChangePassword" owner:self];
}
-(IBAction) continueButton:(id)sender{
if ([actionList indexOfSelectedItem]==0) {
[NSBundle loadNibNamed:@"ViewAvailableItemsWindow" owner:self];
}
else if([actionList indexOfSelectedItem]==1){
[NSBundle loadNibNamed:@"NewOrderPage" owner:self];
}
else if([actionList indexOfSelectedItem]==2){
[NSBundle loadNibNamed:@"ManageItemList" owner:self];
}
else {
if(!createNewAccountWindowController){
createNewAccountWindowController=[[CreateNewAccountWindowController alloc]init];
}
[createNewAccountWindowController showWindow:self];
//[NSBundle loadNibNamed:@"NewAccount" owner:self];
}
}
-(IBAction) logOutButton:(id)sender{
[NSBundle loadNibNamed:@"LoginPage" owner:self];
[[sender window]close];
}
@end
這是完整的代碼,我使用....有問題的代碼是方法continueButton..The其他條件(最後一個)..
我試過這個。我點擊繼續按鈕後打開NewAccountWindow。我關閉窗口並再次點擊繼續按鈕。但是這次「NewAccountWindow」不再打開(即使已經存在的實例也不顯示)。
嗯,這將有助於如果我想打開的createAccount窗口只有一次。會發生什麼事是,如果我打開窗口,關閉它,然後嘗試再次打開它,它不會打開。這是因爲createAccountWindowController對象仍然存在......我覺得這整個方法有點太乏味了......你能想出任何其他方式嗎? – 2011-02-04 08:57:28