zoukankan      html  css  js  c++  java
  • OC之窗口的基本属性

    2017年11月27日 11:01:16 Amazing_anna 阅读数:886

    代码示例

    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];  //或这句也行

        }

    }

    设置Windowimagetitle

    - (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];

  • 相关阅读:
    Navicat连接mysql出现10061/10060错误的解决
    对话守则
    一次Django admin bug解决的思维过程
    Think different
    SVN版本库的迁移
    Windows Phone 8 锁屏背景与通知
    Windows Phone 7 应用升级 Windows phone 8 方案预览 选择合适的 Key Feature
    从 windows phone7 到 windows phone 8 更新 如何设配两个版本
    windows phone 8 语音 Speech for Windows Phone 8
    windows phone 8 中的应用间通信
  • 原文地址:https://www.cnblogs.com/sundaymac/p/10304470.html
Copyright © 2011-2022 走看看