mac开发系列36: 模态窗口

今天公司大哥帮忙解决了mac端模态窗口的问题,于是把这个重要事情记一下 ,好记性不如烂笔头,方便各位小伙伴需要

由于用的是NSWindowController ,在.h中 遵守代理

  - (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模式
          }

现在已经做好模态窗口了.

你可能感兴趣的:(mac开发系列36: 模态窗口)