Возможно ли использовать NSScrollView в качестве аксессуара на NSAlert?NSScrollView не будет прокручивать NSAlert в качестве аксессуара?
Я хочу пригласить пользователя и отобразить список изображений для них как часть приглашения.
Моя мысль заключалась в отображении NSScrollView, который содержит изображения, но когда прокрутка отображается как часть листа NSAlert, она появляется, как и ее содержимое, но вы не можете ее прокручивать.
Я не понимаю, есть ли у меня какой-то простой шаг в настройке NSScrollView, или если это просто ограничение на NSAlert.
Любая помощь была бы принята с благодарностью.
Вот код в вопросе:
NSAlert *alert = [NSAlert alertWithMessageText:prompt
defaultButton:defaultButtonText
alternateButton:altButtonText
otherButton:nil
informativeTextWithFormat:@"%@",infoText];
// create the scrollview
NSScrollView* scrollview = [[NSScrollView alloc] initWithFrame:NSMakeRect(0, 0, 250, imageHeight)];
// fill the scrollview with images
int i = 0;
for (NSImage* image in images)
{
// create a new image view
NSImageView* imageView = [[NSImageView alloc] initWithFrame:NSMakeRect(i*150, 5, 145, 145)];
[imageView setImage:image];
// add the subview to the content view and increase size of contents
[scrollview.contentView addSubview:imageView];
[scrollview.contentView setFrame: NSMakeRect(0,0,(i+1)*150, 155) ];
// increment image counter
i++;
}
// add the scrollview to the alert sheet
[alert setAccessoryView:scrollview];
// show the alert sheet
NSWindow* win = [[[NSApplication sharedApplication] windows] objectAtIndex:0];
[alert beginSheetModalForWindow:win
modalDelegate:delegate
didEndSelector:endselector
contextInfo:nil];
Eureka, вы в порядке. Изображения не появятся, когда я добавлю их в documentView, поэтому я добавил их в contentView. Но причина, по которой они не показывались, заключается в том, что я никогда не устанавливал вид документа и вызывал addSubview на Nil. Я просто создал пустой NSView, называемый setDocumentView, и изменил addSubview для использования documentView. Все хорошо. Большое спасибо. –