美文网首页MacOSmacOS开发备忘录
【已解决】在Mac OS X中点击按钮弹出新窗口怎么弄?

【已解决】在Mac OS X中点击按钮弹出新窗口怎么弄?

作者: 拳战攻城师 | 来源:发表于2018-10-08 11:40 被阅读493次

问题

大概就是点击按钮后从现在的窗口上方向下弹出一个窗口,用来选择一下东西。最好能给个demo,谢谢了 。(问题来自:http://www.cocoachina.com/bbs/read.php?tid=1679520]

解决方案1:完全自由窗口

这种形式下,新打开的子窗口与父窗口相互独立,即使关闭父窗口子窗口也不会受到任何影响。

testWindowController * twc = [[testWindowController alloc] initWithWindowNibName:@"testWindowController"];
[twc showWindow:nil];

解决方案2:Modal Windows

子窗口被弹出时,父窗口会无法接收鼠标、键盘事件的响应。
实现代码如下:

[[NSApplication sharedApplication] runModalForWindow:twc.window];

解决方案3:Modal sessions

子窗口被弹出时,只有父窗口的菜单栏、快捷键等可以接收鼠标、键盘事件的响应。
实现代码如下:

sessionCode = [[NSApplication sharedApplication] beginModalSessionForWindow:twc.window];

附加说明

在所有的Modal形式下(Modal Windows和Modal Sessions),都需要在父窗口载入后监听windowWillClose方法,其代码如下:

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(windowWillClose:)
                                                 name:NSWindowWillCloseNotification
                                               object:nil];

并且在windowWillClose方法中停止Modal:

- (void)windowWillClose:(NSNotification *)notification {
    
    [[NSApplication sharedApplication] stopModal];
    
    if (sessionCode != 0) {
        //窗口以Modal sessions启动时,停止session
        [[NSApplication sharedApplication]endModalSession:sessionCode];
    }
}

Demo运行图与下载地址

player2.gif

https://github.com/gaoxiaodiao/mac_sample/tree/master/windowSample

参考链接

https://blog.csdn.net/lovechris00/article/details/77922445

相关文章

  • 【已解决】在Mac OS X中点击按钮弹出新窗口怎么弄?

    问题 大概就是点击按钮后从现在的窗口上方向下弹出一个窗口,用来选择一下东西。最好能给个demo,谢谢了 。(问题来...

  • popup关键代码

    目的:点击按钮弹出新窗口,新窗口中的动作执行完毕后,原页面不刷新数据返回。 index.html主页面,点击按钮时...

  • 编程练习

    制作新按钮,“新窗口打开网站” ,点击打开新窗口。 任务 1、新窗口打开时弹出确认框,是否打开 提示:使用 if ...

  • 练习1-window打开网页

    编程练习制作新按钮,“新窗口打开网站” ,点击打开新窗口。 任务1、新窗口打开时弹出确认框,是否打开提示: 使用 ...

  • 第一次作业第一题

    作业要求 点击显示按钮标签中显示Hello World!点击清除按钮清除标签内容,点击弹出按钮弹出消息框。 代码 ...

  • window.open 被浏览器拦截

    在项目开发中, 需要在按钮点击后发出一个ajax请求并在请求完成后, 弹出一个新窗口页面. 自然想到用window...

  • mac中不同jdk版本切换

    Mac OS X 和 Apple Java 6 生命周期终止Apple 已发布公告,声明 Mac OS X 10....

  • Mac OS X中配置Apache

    Mac OS X中配置Apache 我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境。 启...

  • 多窗口切换

    有时候我们进行某个操作的时候会弹出新的窗口,比如豆瓣,点击读书,就会弹出新窗口,百度,点击注册也会弹出新窗口,这个...

  • Mac OS X窗口最小化方法的几个快捷键

    大家都知道在 OS X 系统中,点击窗口左上角中间的小黄按钮就可以最小化当前窗口。而事实上,还有一些比点击这个按钮...

网友评论

    本文标题:【已解决】在Mac OS X中点击按钮弹出新窗口怎么弄?

    本文链接:https://www.haomeiwen.com/subject/lhudaftx.html