最近需要做出一個效果贱傀,帶圖片的彈窗惨撇。
最開始想到的就是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];
但是府寒,以后再創(chuàng)建的NSAlert的大小全部變成了第一次設置時的大小魁衙,并且無法改變
當然,如果你只是使用一次NSAlert的話株搔,這樣也沒有什么問題剖淀。但是如果想后續(xù)使用原始大小的NSAlert,這種方法就不行了纤房。
后來偶然發(fā)現(xiàn)了NSAlert的一個屬性:accessoryView纵隔,可以把imageView賦值給它
alert.accessoryView = imageView;
這樣也是成功了,但是你無法隨意改變位置帆卓,也就是說你只能設置寬度和高度巨朦,系統(tǒng)會把我們的View放在一個固定的位置。
但是好處是后續(xù)再彈出的NSAlert大小不會受之前的影響剑令,還是原始大小糊啡。
兩個方法,根據(jù)實際場景做出取舍吁津。