2016-02-27 114 views
1

要顯示20個按鈕中的8個。但我無法翻閱其餘的內容?是否應該顯示滾動條?NSScrollView滾動不起作用?

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個按鈕幫助。

回答

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]]; 
} 
+0

應用這個......但我可能失去了一些東西......我說上面的代碼... THX – jdl

+0

'nssvFonts.documentView'爲零,並且您將按鈕添加到滾動視圖而不是文檔視圖。我編輯了我的答案。 – Willeke

+0

thx ...我有另一種看法與此混亂 – jdl