将 NSTableView 添加到 SpriteKit 应用
Add NSTableView To SpriteKit app
我终于以编程方式创建了一个 NSTableView
。我给它添加了一个 NSScrollView
,但由于某种原因它没有显示卷轴。如果我向 table 添加越来越多的对象,它的高度会增加,我希望它保持相同的高度。如何才能做到这一点?下面是我拼凑的代码。
#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 个元素的情况如下:
数据数组中有 16 个元素(更高 table):
[self.view addSubview:_tableView];
将 table 视图从 scrollview/clipview 移动到 self.view
。
[self.view addSubview:scrollView];
将带有 table 视图的滚动视图添加到 self.view
。
我终于以编程方式创建了一个 NSTableView
。我给它添加了一个 NSScrollView
,但由于某种原因它没有显示卷轴。如果我向 table 添加越来越多的对象,它的高度会增加,我希望它保持相同的高度。如何才能做到这一点?下面是我拼凑的代码。
#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 个元素的情况如下:
数据数组中有 16 个元素(更高 table):
[self.view addSubview:_tableView];
将 table 视图从 scrollview/clipview 移动到 self.view
。
[self.view addSubview:scrollView];
将带有 table 视图的滚动视图添加到 self.view
。