一步一步熟悉Mac app开发(九)之NSPopover

概要

阶段一、再次实现简单的Popover Demo。
阶段二、熟悉NSNotificationCenter中UserInfo参数传递。

阶段一

1、新建工程,在默认的View Controller中加入一个按钮。


一步一步熟悉Mac app开发(九)之NSPopover_第1张图片
image.png

2、添加一个新的View Controller,并设置其大小为200*50。


一步一步熟悉Mac app开发(九)之NSPopover_第2张图片
image.png

3、设置其StoryBoard ID为“Popover”。


一步一步熟悉Mac app开发(九)之NSPopover_第3张图片
image.png

4、将“点击输入你的姓名”按钮,拖拽大法至ViewController.m内。


一步一步熟悉Mac app开发(九)之NSPopover_第4张图片
image.png

一步一步熟悉Mac app开发(九)之NSPopover_第5张图片
image.png

5、btn_input_name按钮的代码如下:

- (IBAction)btn_input_name:(id)sender {
    NSViewController* vc = [[NSStoryboard storyboardWithName:@"Main" bundle:nil] instantiateControllerWithIdentifier:@"Popover"];
    NSPopover *popover = [[NSPopover alloc] init];
    popover.contentViewController = vc;
    popover.behavior = NSPopoverBehaviorTransient;  //自动关闭popover
    [popover showRelativeToRect:_btn_input_name.bounds ofView:_btn_input_name preferredEdge:NSRectEdgeMaxY];
}

6、阶段一完成,效果如下。


一步一步熟悉Mac app开发(九)之NSPopover_第6张图片
image.png

阶段二

1、创建一个NSViewController的子类“PopoverViewController”,并且设置"Popover"的Custom Class为“PopoverViewController”。


一步一步熟悉Mac app开发(九)之NSPopover_第7张图片
image.png

2、拖拽大法,将“确认”按钮拖拽至PopoverViewController中。


一步一步熟悉Mac app开发(九)之NSPopover_第8张图片
image.png

3、添加代码。
- (IBAction)btn_click:(id)sender {
    NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
    NSString *name = _text_name.stringValue;
    [nc postNotificationName:@"click" object:self userInfo:@{@"name":name}];
}

4、在ViewController.m中添加代码。

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // Do any additional setup after loading the view.
    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
    [nc addObserver:self selector:@selector(sayHi:) name:@"click" object:nil];
    
}

-(void) sayHi:(NSNotification *)nc{
    NSAlert *alert = [[NSAlert alloc] init];
    NSString*name = nc.userInfo[@"name"];
    alert.messageText = @"系统提示:";
    alert.informativeText = [NSString stringWithFormat:@"你好,%@!",name];
    [alert addButtonWithTitle:@"你好"];
    [alert runModal];
}

5、阶段二完成,效果如下。


一步一步熟悉Mac app开发(九)之NSPopover_第9张图片
image.png
一步一步熟悉Mac app开发(九)之NSPopover_第10张图片
image.png

你可能感兴趣的:(一步一步熟悉Mac app开发(九)之NSPopover)