【Mac OS X开发】NSAlert的使用心得

NSAlert对话框样式

使用NSAlert可以弹出两种不同的视图效果。


1. 无模式对话框

通过[NSAlert beginSheetModalForWindow]接口,可以得到如下所示的alert sheet attached to a specified window,即依赖于特定窗口的提示框:



2. 无模式对话框

通过[NSAlert runModal]接口,可以得到如下所示的application-modal dialog,即模式对话框视图:




NSAlert自定义

默认的alert弹出视图,只能显示标题、提示、一到三个按钮之类的简单视图。如果想实现alert视图的任意布局,则需要自定义。


1.自定义内容

通过[[[NSAlert window] contentView] addSubview:view]接口来添加子视图view,并设置子视图的位置和大小,依次来添加自定义内容,如表格、文本框之类的视图。


2.自定义按钮

如果想调整alert视图下方的按钮的位置或样式,或者点击按钮后使alert视图先不关闭,则可以通过自定义的方式来实现。

首先,先去除默认的按钮。方法还是通过[[NSAlert window] contentView]中的子视图来实现,判断子视图中如果存在NSButton类型,则移除该子视图。

代码示例如下:

    NSMutableArray *newSubViews = [[[NSMutableArray alloc] initWithObjects:accessoryView, nil] autorelease]; // accessoryView为自定义视图内容
    for(NSView *view in contentView.subviews){
        if ([view isKindOfClass:[NSButton class]]) {
            [newSubViews addObject:view];
        }
    }
    [contentView setSubviews:newSubViews];
自定义按钮向alert视图的响应函数传递消息的方式可以通过[NSApp endSheet: [alert window] returnCode:NSAlertAlternateReturn];这样类似的语句来完成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值