NSWindow 通知/关闭/退出app

代码示例

NSRect frame = CGRectMake(0, 0, 200, 200);
NSUInteger style =  NSTitledWindowMask | NSClosableWindowMask |NSMiniaturizableWindowMask | NSResizableWindowMask;
NSWindow *window = [NSWindow alloc]initWithContentRect:frame styleMask:style backing:NSBackingStoreBuffered defer:YES];
window.title = @"New Create Window";
//窗口显示
[window makeKeyAndOrderFront:self];
//窗口居中
[window center];”

styleMask:窗口风格

enum {
   NSBorderlessWindowMask = 0,             //没有顶部titlebar边框
   NSTitledWindowMask = 1 << 0,            //有顶部titlebar边框
   NSClosableWindowMask = 1 << 1,          //带有关闭按钮
   NSMiniaturizableWindowMask = 1 << 2,    //带有最小化按钮
   NSResizableWindowMask = 1 << 3,         //恢复按钮
   NSTexturedBackgroundWindowMask = 1 << 8 //带纹理背景的window
};

backing:窗口绘制的缓存模式

enum {
   NSBackingStoreRetained     = 0, //兼容老系统参数,基本很少用到
   NSBackingStoreNonretained  = 1, //不缓存直接绘制
   NSBackingStoreBuffered     = 2  //缓存绘制
};

窗口通知

NSWindowDidBecomeKeyNotification: 窗口成为keyWindow
NSWindowDidBecomeMainNotification:窗口成为mainWindow
NSWindowDidMoveNotification:      窗口移动
NSWindowDidResignKeyNotification: 窗口不再是keyWindow
NSWindowDidResignMainNotification:窗口不再是mainWindow
NSWindowDidResizeNotification:    窗口大小改变
NSWindowWillCloseNotification:    关闭窗口

NSWindow 中的 contentView

关闭窗口时退出程序

方法一:
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)application {
    return YES;
}
方法二:利用 NSWindowDelegate
- (void)windowWillClose:(NSNotification *)notification
{
    NSWindow *window = notification.object;
    if(window == self.window) {
        [NSApp terminate:self];
       // [[NSApplication sharedApplication] terminate:nil];  //或这句也行
    }
}

设置Window的image和title

- (void)setWindowIcon {
    [self.window setRepresentedURL:[NSURL URLWithString:@"WindowTitle"]];
    [self.window setTitle:@"SQLiteApp"];
    NSImage *image = [NSImage imageNamed:@"windowIcon"];
    [[self.window standardWindowButton:NSWindowDocumentIconButton] setImage:image];
}
**关闭窗口**


[self.window miniaturize:sender];

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值