添加NSTableView到SpriteKit应用程序

时间:2017-07-04 05:56:48

标签: objective-c macos nstableview

我终于以编程方式创建了NSTableView。我添加了一个NSScrollView,但由于某种原因它没有显示滚动。如果我向表中添加越来越多的对象,它的高度会增加,我希望它保持相同的高度。如何才能做到这一点?以下是我拼凑在一起的代码。

#import "GameScene.h"

@interface GameScene()

@property NSMutableArray *data;

@end

@implementation GameScene 

- (void)didMoveToView:(SKView *)view {
    _data = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", nil];

    NSRect rect = NSMakeRect(300, 200, 400, 100);
    _tableView = [[NSTableView alloc] initWithFrame:rect];
    [_tableView addTableColumn:[[NSTableColumn alloc] initWithIdentifier:@"column 1"]];
    _tableView.dataSource = self;
    _tableView.delegate = self;

    NSScrollView *scrollView = [[NSScrollView alloc] init];
    [scrollView setHasVerticalScroller:YES];
    [scrollView setDocumentView:self.tableView];

    [self.view addSubview:_tableView];
}

-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
    return [_data count];
}

-(NSView*)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    NSTextView *textView = [[NSTextView alloc] init];
    textView.string = [_data objectAtIndex:row];
    return textView;
}

-(void)update:(CFTimeInterval)currentTime {
    // Called before each frame is rendered
}

-(void)removeUIViews{
    [_tableView removeFromSuperview];
}

@end

以下是数据数组中8个元素的样子:

enter image description here

这是数据数组中的16个元素(更高的表)的样子:

enter image description here

1 个答案:

答案 0 :(得分:1)

let stringToSplit = "abc def ghi"; StringToSplit.split(" "); console.log(stringToSplit[0]); 将表格视图从scrollview / clipview移至[self.view addSubview:_tableView];

self.view将带有表格视图的滚动视图添加到[self.view addSubview:scrollView];