首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.reloadData()不会调用NSTableView委托方法

.reloadData()是一个方法,用于重新加载NSTableView的数据。它会刷新表格视图并重新加载数据源中的数据,以便更新表格的显示。

NSTableView是Mac OS X平台上的一个控件,用于显示和编辑表格数据。它是基于MVC(Model-View-Controller)模式的,通过数据源和委托来管理数据和交互。

.reloadData()方法的调用不会直接触发NSTableView的委托方法。委托方法是在特定的事件发生时由NSTableView自动调用的,例如用户选择了某一行或编辑了某个单元格。常见的委托方法包括tableView(:viewFor:row:)、tableViewSelectionDidChange(:)等。

如果需要在调用.reloadData()后执行一些操作,可以通过以下两种方式实现:

  1. 在.reloadData()之后手动调用委托方法:可以在.reloadData()方法之后手动调用需要执行的委托方法,以实现特定的操作。例如,可以在.reloadData()之后调用tableViewSelectionDidChange(_:)方法来处理选中行变化的逻辑。
  2. 使用NSTableView的通知机制:NSTableView提供了一些通知,可以在数据源或委托方法中注册并监听。当数据源或委托方法被调用时,会发送相应的通知,可以在通知的回调方法中执行需要的操作。常见的通知包括NSTableViewSelectionDidChangeNotification、NSTableViewSelectionIsChangingNotification等。

总结起来,.reloadData()方法用于刷新NSTableView的数据,但不会直接调用委托方法。如果需要在.reloadData()后执行一些操作,可以手动调用委托方法或使用NSTableView的通知机制来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Unity背包系统

    1.通过UIManager(单例)管理不同的Panel 2.通过BagWindow对背包进行管理 提供方法: 1)OnPackOpen此方法刷新背包中的数据。遍历玩家的全部数据,分两种情况进行背包中的物品刷新。 第一种:一个Block存在子物体,那么将此子物体直接初始化,初始化将激活子物体,将子物体的图片和数量设置为玩家的物品图片和物品的数量。 第二种:一个Block没有子物体,我们将创建一个预制体再初始化此预制体,初始化操作同上 2)ClearBag此方法将背包中的全部有物体的Block的物体进行禁用,来隐藏物体 3.购买物品: 我们通过CommodityManager来对物品进行购买控制。为物品添加一个点击事件OnClick。在此方法中我们将为BagWindow所持有的一个类TipsManager(下面讲)进行委托的赋值操作。 委托的内容: 1)对购买的输入值进行安全检查。 2)对背包进行个检查,包括背包是否满了、玩家是否还有足够的金币进行购买。其中检查背包是否满了和购买物品是否是可叠加物品我们将在玩家的数据类中进行处理。 3)实际的购买我们是在PlayerData中对玩家的物品数据和玩家的金币进行操作。 4)在我们实际购买后,调用一次刷新背包,我们将看到背包的数据与玩家的数据进行同步。 4.我们通过一个TipsManager来管理交易时出现的对话框,在此类中,我们声明一个委托,此委托声明为Action<int>为一个一个参数int类型无返回值的委托。在我们交易完成点击确认的时候将会调用此委托。

    02
    领券