Mac OS 中 NSAlert的使用

最近需要做出一个效果,带图片的弹窗。

最开始想到的就是NSAlert

一开始想改变NSAlert的大小去插入图片,确实成功了

NSAlert *alert = [NSAlert alertWithMessageText:@"test" defaultButton:nil alternateButton:nil otherButton:nil informativeTextWithFormat:@""];
    
    
    NSWindow *container = alert.window;
    
    NSRect rect = container.frame;
    
    rect.size.height += 100;
    
    [container setFrame:rect display:YES];
    
    NSImageView *imageView = [[NSImageView alloc] init];
    
    
    
    imageView.image = [NSImage imageNamed:@"image"];
    
    imageView.frame = NSMakeRect(110, 55, imageWidth, imageHeight);
    
    [container.contentView addSubview:imageView];

但是,以后再创建的NSAlert的大小全部变成了第一次设置时的大小,并且无法改变

当然,如果你只是使用一次NSAlert的话,这样也没有什么问题。但是如果想后续使用原始大小的NSAlert,这种方法就不行了。

后来偶然发现了NSAlert的一个属性:accessoryView,可以把imageView赋值给它

alert.accessoryView = imageView;

这样也是成功了,但是你无法随意改变位置,也就是说你只能设置宽度和高度,系统会把我们的View放在一个固定的位置。
但是好处是后续再弹出的NSAlert大小不会受之前的影响,还是原始大小。

两个方法,根据实际场景做出取舍。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,951评论 0 15
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,573评论 6 30
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 最近有点懈怠,做什么事都提不起精神,不想看书,可,目标却清晰可见。最近心情不好,总是用食物来刺激自己,所以...
    安好生活家阅读 133评论 0 0