gpt4 book ai didi

objective-c - 如何在 OSX 中获取动态变化的 NSTableView

转载 作者:行者123 更新时间:2023-12-03 17:22:00 24 4
gpt4 key购买 nike

我是 Mac 编码新手。我熟悉 iOS 编码中的 UITableView,但似乎无法让 NSTableView 在我的应用程序上正常工作。是的,我已经查看了文档和教程,但我无法获得我需要的结果。我想要的结果应该是非常基本和简单的,但我对 TableViews 感到困惑。我真的希望它的功能更像是 UITableView 的功能,而不是 NSTableView 的功能。我不想添加或删除行。我只需要 1 列,我真的希望它像按钮列表一样工作,可以按下这些按钮并在下一个 NSView 的同一屏幕上触发与该选项关联的内容。

(我在一个屏幕上有 3 个 View 。第一个是左侧的主菜单,按下时会触发 tableView 显示子菜单。选择该选项后,它将打开屏幕最右侧的内容。我的无论如何,想要的结果。)

当前 TableView 中没有任何内容。这就是它目前的样子。

.h

@interface RootViewController : NSViewController <NSTableViewDataSource>{
IBOutlet NSView *mainMenuView;
IBOutlet NSTableView *tableView;
NSMutableArray *options;

}

-(IBAction)mainMenuBtn:(id)sender;

@end

.m

@interface RootViewController ()

@end

@implementation RootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
options = [[NSMutableArray alloc] init];
}
return self;
}

-(void)viewDidLoad{

}

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

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
return [[options objectAtIndex:row] valueForKey:[tableColumn identifier]];
}

-(IBAction)mainMenuBtn:(id)sender{
NSLog(@"1");
[options addObject:@"Strain 1"];
NSString *test = [options objectAtIndex:0];
NSLog(test);
[tableView reloadData];

}

目前,我已将 NIB 中的 tableView 连接到 TableView。我尝试将数据源连接到文件的所有者,但这不起作用。似乎也找不到其他地方可以连接它。任何建议将不胜感激。谢谢

最佳答案

首先,NSTableView 的数据源必须在 Interface Builder 中或通过代码连接到您的 RootViewController 实例。对我来说有点可疑的是这行:

return [[options objectAtIndex:row] valueForKey:[tableColumn identifier]];

我不知道 [tableColumn 标识符] 的值是什么,但它必须与您要添加到数组中的对象的属性相匹配。我可以看到您添加的对象是字符串,因此 [tableColumn 标识符] 必须是 NSString 类的属性。如果您使用字符串作为数组的对象,请尝试使用以下内容:

return [options objectAtIndex:row];

关于objective-c - 如何在 OSX 中获取动态变化的 NSTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21613972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com