Как работает NSScrollView? - PullRequest
       2

Как работает NSScrollView?

1 голос
/ 27 апреля 2011

Как NSScrollView работает в приложениях Mac? Я написал следующий код, но прокрутка не работает.

NSDictionary *temp=[[ NSDictionary alloc] init  ];
NSScrollView *scroll = [[NSScrollView alloc ] initWithFrame:CGRectMake(0, 0, 100, 100)];     
NSArray *dicArray=[NSArray arrayWithObjects:dict,dict1,dict2,dict3,dict4, nil];

for (int i=0; i<[dicArray count]; i++) 
{
    int offset=100;
    int x=10;
    int y=20;
    y=y+(i*offset);
    temp= [dicArray objectAtIndex:i];

    NSRect titleRect=NSMakeRect(x,y,100,30);
    NSRect subtitleRect=NSMakeRect(x, y+20, 400, 20);

    NSTextField *title=[[NSTextField alloc] initWithFrame:titleRect];

    [[title cell] setStringValue:[temp objectForKey:key]];

   [[title cell] setWraps:NO];
   [[title cell] setScrollable:YES];
   [[title cell] setEditable:NO];
   [[title cell] setFont:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSMinusSetExpressionType]]];
   [title setDrawsBackground:NO];
   [title setBordered:NO];

    NSTextField *subtitle=[[NSTextField alloc] initWithFrame:subtitleRect ];
    [[subtitle cell] setStringValue:[temp objectForKey:subkey]];
    [[subtitle cell] setWraps:NO];
    [[subtitle cell] setScrollable:YES];
    [[subtitle cell] setEditable:NO];
    [[subtitle cell] setFont:[NSFont systemFontOfSize:[NSFont     systemFontSizeForControlSize:NSMiniControlSize]]];
    [subtitle setDrawsBackground:NO];
    [subtitle setBordered:NO];
    [scroll addSubview:title];
    [scroll addSubview:categoryOkButton];
  [scroll addSubview:subtitle];


}
[[self window] setContentView:scroll];
[scroll release];

1 Ответ

20 голосов
/ 27 апреля 2011

Мой Какао немного ржавый, но NSScrollView работает не так, как UIScrollView. Вы не просто добавляете подпредставления, которые не работают с NSScrollView.

Вам нужен контейнерный вид, в который вы добавляете все свои подпредставления. Таким образом, вы создаете NSView соответствующего размера и добавляете все ваши представления в это представление контейнера. Затем вы установите:

[myScrollView setDocumentView:myContainerView];

Подробнее см. В руководстве по программированию Scroll View .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...