在重新聚焦时重新加载NSTableView

时间:2011-05-16 00:40:02

标签: objective-c cocoa macos nstableview

在我的应用程序中,我有一个NSWindow,它有一个NSTableView对象和几个按钮。当用户按下“新”按钮时,激活“ItemAdd”NSWindowController,其中用户键入要添加到NSTableView的项目的属性。

我的问题是:由于NSTableView需要reloadData更新其视图,如何在ItemAdd窗口关闭后调用reloadData并将焦点转移回NSWindow并使用{{ 1}}。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可以将重新加载数据放在通知处理程序中:

将此项放在您希望调用通知的对象的初始化方法中:

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didBecomeMainWindow) name:@"NSWindowDidBecomeKeyNotification" object:nil];

然后制作一个像这样的方法:

- (void) didBecomeMainWindow
{
    [tableView reloadData];
}

答案 1 :(得分:0)

您可以继承NSWindow并覆盖以下方法:
- (void)becomeKeyWindow