今天公司大哥帮忙解决了mac端模态窗口的问题,于是把这个重要事情记一下 ,好记性不如烂笔头,方便各位小伙伴需要
由于用的是NSWindowController ,在.h中 遵守<NSWindowDelegate>代理
- (IBAction)renameFile:(id)sender {
NSString*name =_fileName.stringValue;
BOOLbAllEscape =TRUE;
int index =0;
for(int i =0; i < [name length] ; i++) {
NSString* temp = [name substringWithRange:NSMakeRange(i,1)];
if([temp compare:@" "] !=0) {
bAllEscape =FALSE;
index = i;
break;
}
}
name = [name substringFromIndex:index];
}
[NSApp stopModal];//这里需要把modal关闭
[self close];
}
代理方法
- (BOOL)windowShouldClose:(id)sender{//代理方法
[NSApp stopModal];//关闭modal模式
returnYES;
}
在控制器创建窗口时
-(void)renameWindow:(NSString*)judge origionName:(NSString*)oldName {
self.renameWnd= [[RenameWnd alloc]initWithWindowNibName:@"RenameWnd"];
self.renameWnd.judge= judge;
[self.renameWnd loadWindow];
[self.renameWnd selectItemFileName:oldName];
[self.renameWnd showWindow:nil];
[NSApp runModalForWindow:self.renameWnd.window];//加上这句话,开启modal模式
}
现在已经做好模态窗口了.