NSScrollView滚动不滚动?

dl

将显示20个按钮中的八个。但是我无法滚动其余部分?是否应该显示滚动条?

NSScrollView *nssvFonts = [[NSScrollView alloc] initWithFrame:CGRectMake(200, 200, 200, 400)];
[self.view addSubview:nssvFonts];

[nssvFonts.documentView setFrame: NSMakeRect(0,0,200, 400) ];
nssvFonts.hasVerticalScroller = YES;

for(int i = 0; i < 20; i++){
    NSButton *btnDown = [[NSButton alloc] initWithFrame:CGRectMake(0, 50 * i, 200, 50)];
    [nssvFonts addSubview:btnDown];
    [btnDown setButtonType:NSMomentaryPushInButton];
    [btnDown setTitle:[NSString stringWithFormat:@"Down: %d", i]];
}

因此,我应用了Willeke的建议并进行了添加和更改:

NSScrollView *nssvFonts = [[NSScrollView alloc] initWithFrame:CGRectMake(200, 200, 300, 400)];
[self.view addSubview:nssvFonts];

[nssvFonts.documentView setFrame: NSMakeRect(0,0,200, 1000)];
//[nssvFonts.contentView setFrame:NSMakeRect(0,  0, 200, 400)];
nssvFonts.hasVerticalScroller = YES;

for(int i = 0; i < 20; i++){
    NSButton *btnDown = [[NSButton alloc] initWithFrame:CGRectMake(50, 50 * i, 200, 50)];
    [nssvFonts addSubview:btnDown];
    [btnDown setButtonType:NSMomentaryPushInButton];
    [btnDown setTitle:[NSString stringWithFormat:@"Down: %d", i]];
}

但是仍然没有垂直滚动条显示,并且我不能使用鼠标来滚动它……向下按1个按钮或向下按2个按钮都可以。

维莱克

滚动视图显示的视图内容的一部分太大而无法在窗口中显示,并允许用户在滚动视图内移动文档视图。

换句话说:滚动视图显示其文档视图的一部分。如果文档视图与滚动视图的大小相同,则不会滚动。使文档视图足够大,以便所有按钮都适合。

编辑:

NSScrollView *nssvFonts = [[NSScrollView alloc] initWithFrame:NSMakeRect(200, 200, 300, 400)];
[self.view addSubview:nssvFonts];

NSView *documentView = [[NSScrollView alloc] initWithFrame:NSMakeRect(0, 0, 200, 1000)];
nssvFonts.documentView = documentView;

nssvFonts.hasVerticalScroller = YES;

for(int i = 0; i < 20; i++) {
    NSButton *btnDown = [[NSButton alloc] initWithFrame:NSMakeRect(50, 50 * i, 200, 50)];
    [documentView addSubview:btnDown];
    [btnDown setButtonType:NSMomentaryPushInButton];
    [btnDown setTitle:[NSString stringWithFormat:@"Down: %d", i]];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章