Objective c 调用方法时,NSTableView不刷新

Objective c 调用方法时,NSTableView不刷新,objective-c,cocoa,nstableview,nsbutton,Objective C,Cocoa,Nstableview,Nsbutton,您好,我在应用程序.xib文件中放置了一个NSTableView对象,我从按钮单击中添加了一些数据。我正在刷新表以查看更改,但当我尝试从代码调用按钮的操作时,它仅将对象添加到ArrayColcontroller,表未刷新。有没有什么特殊的方法可以调用IBAciton方法来实现我尝试的目标 除了AppDelegate,我还有TableController类 TableController.h文件: 若我想调用addToTable方法而不使用按钮,那个么表视图中并没有任何变化 有人能帮忙吗 编辑 问

您好,我在应用程序.xib文件中放置了一个NSTableView对象,我从按钮单击中添加了一些数据。我正在刷新表以查看更改,但当我尝试从代码调用按钮的操作时,它仅将对象添加到ArrayColcontroller,表未刷新。有没有什么特殊的方法可以调用IBAciton方法来实现我尝试的目标

除了AppDelegate,我还有TableController类

TableController.h文件:

若我想调用addToTable方法而不使用按钮,那个么表视图中并没有任何变化

有人能帮忙吗

编辑


问题已解决。

在主线程中运行的代码是否不正常?上面的代码不在主线程上运行,我尝试从AppDelegates调用performRefresh,以确定IBAction方法是否在主线程上运行。是的,很抱歉,您是对的。请将此添加到performRefresh的顶部:NSAssert[NSThread isMainThread],@bang;。
@interface TableController : NSObject <NSTableViewDelegate, NSTableViewDataSource>

@property (weak) IBOutlet NSArrayController *arrayController;
@property (assign) IBOutlet NSTableView *table;

-(void)performRefresh;
-(IBAction)addToTable:(id)sender;

@end
-(IBAction)addToTable:(id)sender
{
    [self performRefresh];
}

-(void)performRefresh
{
    [arrayController addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:@"aaaa", @"A", @"bbbb", @"B", nil]];
    [table reloadData];
}