2014-02-02 5 views
2

Возможно ли использовать 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]; 

ответ

4

Я думаю, что вы хотите добавить точку изображения для просмотра документа в скроллинга зрения, а не его представления содержимого.

+1

Eureka, вы в порядке. Изображения не появятся, когда я добавлю их в documentView, поэтому я добавил их в contentView. Но причина, по которой они не показывались, заключается в том, что я никогда не устанавливал вид документа и вызывал addSubview на Nil. Я просто создал пустой NSView, называемый setDocumentView, и изменил addSubview для использования documentView. Все хорошо. Большое спасибо. –

Смежные вопросы