首页
学习
活动
专区
工具
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的通知机制来实现。

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

相关·内容

【Groovy】MOP 元对象协议与元编程 ( 方法委托 | 正常方法调用 | 方法委托实现 | 代码示例 )

文章目录 一、方法委托 1、正常方法调用 2、方法委托实现 二、完整代码示例 一、方法委托 ---- 1、正常方法调用 定义两个类 , 分别在类中定义不同的方法 ; class Student1{...) sm.student2.hello2() 2、方法委托实现 在 StudentManager 对象中, 如果通过该对象 , 调用 Student1 中的方法 hello1 , 而发现该对象没有该 hello1...方法 , 那么将方法委托给 Student1 对象执行 ; 方法委托实现 : 为 StudentManager 对象注入方法 , 如果当前调用的是 hello1 方法 , 则执行 student1 的..., 需要经过两个调用节点; sm.student1.hello1() sm.student2.hello2() // 方法委托, 直接通过 StudentManager 对象调用 Student1...中的方法 sm.hello1() // 方法委托, 直接通过 StudentManager 对象调用 Student2 中的方法 sm.hello2() /* 方法委托 : 如果调用的某个对象方法没有定义该对象

28310

macOS开发之NSTableView的应用详解

当objectValueForTableColumn方法将每个行具体的数据返回后,会调用cell的setObjectValue方法(因此如果要自定义cell,必须实现这个方法)。...如果我们要对Cell的渲染进行一些定制,可以在如下方法中实现: //将要渲染cell调用方法 开发者可以拿到cell对象做定制 - (void)tableView:(NSTableView *)tableView...Cell,如果实现了这个方法,则TableView不会再从NSTableColumn对象中拿Cell实例: //返回自定义的Cell实例 /* 需要注意,这个方法在第一次调用的时候 tableColumu...如果实现了这个方法,上面一个方法不会调用 */ - (NSIndexSet *)tableView:(NSTableView *)tableView selectionIndexesForProposedSelection...)tableView:(NSTableView *)tableView didClickTableColumn:(NSTableColumn *)tableColumn; /* 对列进行拖拽改变顺序时调用方法

4.8K21
  • 开心档之C# 匿名方法我们已经提到过,委托是用于引用与其具有相同标签的方法。换句话说,您可以使用委托对象调用可由委托引用的方法。 匿名方法(Anonymou

    C# 匿名方法我们已经提到过,委托是用于引用与其具有相同标签的方法。换句话说,您可以使用委托对象调用可由委托引用的方法。...委托可以通过匿名方法调用,也可以通过命名方法调用,即,通过向委托对象传递方法参数。注意: 匿名方法的主体后面需要一个 ;。...NumberChanger nc = delegate(int x){Console.WriteLine("Anonymous Method: {0}", x);};// 使用匿名方法调用委托nc(10...);// 使用命名方法实例化委托nc = new NumberChanger(AddNum);// 使用命名方法调用委托nc(5);// 使用另一个命名方法实例化委托nc = new NumberChanger...(MultNum);// 使用命名方法调用委托nc(2);Console.ReadKey();}}}当上面的代码被编译和执行时,它会产生下列结果:Anonymous Method: 10Named Method

    82320

    【IOS开发基础系列】UISearch专题

    //.控件的委托委托要遵从UISearchBarDelegate协议,默认是nil     bar.delegate = self; ③代理要试实现的协议方法 1).输入编辑事件处理 – searchBar...bgImage]; //<---背景图片 [self.view addSubview: m_searchBar]; [m_searchBar release];  1.2.2 取消UISearchBar调用的键盘...self.dataArray filteredArrayUsingPredicate: predicate]]; return self.arr.count;   }  ④使用UISearchDisplayDelegate的委托方法进行搜索操作...shouldReloadTableForSearchString: 2.2 开发技巧 2.2.1 重复使用SearchVC时要注意Cell重用问题,清空上一次的搜索结果cell         对于搜索结果表视图,IOS并不会随着...) updateSearchResultsForSearchController: (UISearchController*)searchController {     //已经在Searchbar委托方法中处理了

    51320

    Mac OSX 开发基础控件学习之 NSOutlineView

    NSOutlineView-feature.png 在开发基于osx的Application的过程中,当我们需要显示一组列表结构的数据时,比较容易想到的控件是NSTableView;但如果你显示的数据有层级结构时...,NSTableView就会面临一个问题:因为在osx中,NSTableView没有分组功能( sections) 因为在cocoa 中提供了另一个控件供满足我们的需求NSOutlineView它是继承自...NSTableView的子类,是Mac OSX Application常用的控件之一,与NSTableView相似,NSOutlineView也使用行和列来显示内容,但所不同的是NSOutlineView...中初始化模型数据 setup mode 设置NSOutlineView的DataSource 和Delegate Data Source 和 Delegate ViewController 实现数据源和代理方法...ViewController 实现方法 NSOutlineView数据源方法调用顺序:numberOfChildrenOfItem->child index: Int ->isItemExpandable

    1.6K20

    【iOS 开发】tableView updates 对比 reloadData

    tableData.append("\(tableData.count)") tableData.append("\(tableData.count)") tableView.reloadData...这样做使得 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 方法被少调用了四次...总结 numberOfRows 方法调用: 都只调用一次 numberOfRows 方法 cellForRow 方法调用次数: reloadData 会为当前显示的所有cell调用这个方法,updates...只会为新增的cell调用这个方法 cellForRow 方法调用时间: reloadData 会在 numberOfRows 方法调用后的某一时间异步调用 cellForRow 方法,updates...会在 numberOfRows 方法调用后马上调用 cellForRow 方法 reloadData 方法缺陷: 带来额外的不必要开销,缺乏动画 updates 方法缺陷:deleteRows 不会调用

    1.8K30

    UICollectionView iOS 13以下删除动画crash

    但是这个reloadData不会直接触发UICollectionView马上从dataSource和delegate去获取数据和UI,而是会等到UICollectionView展示的时候再进行触发。...问题修复 区分UICollectionView删除cell场景,如果是用户手动移除则会进行动画;如果是非手动触发删除则直接调用reloadData,不调用deleteItemsAtIndexPaths。...就不会回调dataSource去询问。...如果UICollectionView不在当前界面,此时这个缓存会失效,但此刻并不会马上调用dataSource的numberOfItemsInSection:。...图片 这个也可以解释一个奇怪现象,如果在移除数据之前调用一遍numberOfItemsInSection:,即使按照原来的复现路径也不会crash。 因为第一行更新了缓存为正确数量。

    1.8K30

    在C++中反射调用.NET(三) 使用非泛型集合的委托方法C++中的列表对象list C++传递集合数据给.NET创建泛型List实例反射静态方法反射调用索引器当委托遇到协变和逆变C++CLI

    使用非泛型集合的委托方法 先看看.NET类中的一个返回列表数据的方法: //返回List或者数组,不影响 C++调用 public List GetUsers(string...//this->idxAction(propName, value); } 对索引器的访问,实际上就是调用类的 set_Item 方法,VS编译器会给包含索引器的对象生成这个方法,一般来说我们会对要反射调用方法创建一个委托...我们知道,反射的时候,利用委托绑定要反射的方法,能够大大提高方法调用效率,所以对于我们的方法参数,如果调用的时候无法获知具体的类型,从而无法正确构造合适的委托方法,不如退而求其次,让被调用方法参数采用弱类型方式...SaveUser2完整的代码如下: //示例2:调用.NET弱类型的参数方法,以便通过委托方法调用 //构建委托方法比较容易,适用于参数数量多于1个的情况, bool SaveUsers2...,反射+委托的性能是接近于直接方法调用的。

    9.1K100

    iOS开发-搜索栏UISearchBar和UISearchController

    为了实现搜索需要声明委托 UISearchBarDelegate , UISearchDisplayDelegate,其中搜索主要使用的就是UISearchDisplayDelegate,具体代码实现过程...NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1;} 设置区域的行数(重点),这个就是使用委托之后需要需要判断是一下是否是需要使用...UISearchDisplayController, 也就是不推荐使用 UISearchDisplayDelegate ,但是可以通过 UISearchController 实现 UISearchResultsUpdating 这个委托实现上面的效果...indexPath.row]]; } else{ [cell.textLabel setText:self.dataList[indexPath.row]]; } return cell;} 具体调用的时候使用的方法也发生了改变...NSMutableArray arrayWithArray:[_dataList filteredArrayUsingPredicate:preicate]]; //刷新表格 [self.tableView reloadData

    2.4K70

    一步一步,开始上手Mac 开发(一)

    MasterViewController后的界面 1.9 选中MasterViewController.xib,因为我们这个工程练习需要显示一些Bugs信息列表,所以需要一个table view,在Mac中,这个控件叫做NSTableView...(NSString *)title rating:(float)rating strong :系统的runtime会自动保持对其进行强引用(ARC) assign:基本数据类型(非对象类型)使用,不会触发内存管理问题...(不会纳入到ARC中) 1.17 使用同样的步骤,我们再创建另一个数据模型ScaryBugsDoc,并编写代码,结果如下: ?...在OSX中table view 控件是NSTableView,它类似iOS中的UITableView,不同的是在NSTableView的一行(row)中可以有很多列(column) 1.20 选中table...table view 设置后运行效果 与iOS相似,NSTableView 也有数据源和代理这两个属性,现在我们需要将MasterViewController设置为table view 的数据源和代理(

    4.1K40

    直播卖货小程序源码中,商品分类页面是如何实现的

    判断滑动是不是因为点击一级分类引起         isClickLeft = YES;         selectTableIndex = indexPath.row;         [tableView reloadData...dispatch_get_main_queue(), ^{             isClickLeft = NO;         });     } } 2、在collectionview的代理方法中更改一级分类的选中...///collectionview将要加载头尾视图调用方法 - (void)collectionView:(UICollectionView *)collectionView willDisplaySupplementaryView...        ///更新当前选中的一级分类的indexpath         selectTableIndex = indexPath.section;         [_classTableView reloadData...];     } } ///collectionview已经加载完头尾视图调用方法 - (void)collectionView:(UICollectionView *)collectionView

    1.1K20

    iOS开发笔记(八)---- 键盘、静态库、动画、Crash定位

    经过一番调试,把问题的整个原路径给回溯出来: 1.下拉刷新 ==> 2.数据请求 ==> 3.本地数据源更新 ==> 4.1调用reloadData更新视图 3.本地数据源更新 ==> 4.2 下拉刷新结束...问题修复: 修复方案,可以是dispatch到下一个runloop再执行reloadData,这样在4.5回调中调用visiableCell的时候visiableCell拿到上一次的cell,这样链路会断开...,不会导致视图位移。...最佳解决方案:不调用visiableCell去获取当前显示的cell,改为监听UITableView的willDisplay和didEndDisplayingCell方法,再用一个双端队列维护一个业务侧的当前可见...通过这个问题,我们可以确定-reloadData方法是把UITableView的可见cell清空; visiableCell是一个getter,调用的时候如果visiableCell是空,会触发cellfor

    1.2K90

    iOS 开发:『Runtime』详解(二)Method Swizzling

    因为 +initialize 方法调用时机是在 第一次向该类发送第一个消息的时候才会被调用。如果该类只是引用,没有调用,则不会执行 +initialize 方法。...交换了方法实现并且一些回调方法不会调用原生方法的实现这可能会造成底层实现的崩溃。 避免命名冲突和参数 _cmd 被篡改。 避免命名冲突一个比较好的做法是为替换的方法加个前缀以区别原生方法。...一定要确保调用了原生方法的所有地方不会因为自己交换了方法的实现而出现意料不到的结果。 在使用 Method Swizzling 交换方法后记得要在交换方法调用原生方法的实现。...但是这样的话,所有继承自 UIViewController 类自身的 viewWillAppear: 就失效了,不会调用。 这就需要用 Method Swizzling 来实现了。...利用 Method Swizzling 将 reloadData 方法和 xxx_reloadData 进行方法交换。

    1.9K31

    细述Kubernetes和Docker容器的存储方式

    集合视图也有两个协议:UICollectionViewDelegate委托协议和UICollectionViewDataSource数据源协议。...cell:[collectionView registerClass:要注册的cell类 forCellWithReuseIdentifier:重用标识符]; 刷新数据:[collectionView reloadData...集合视图的委托协议是UICollectionViewDelegate,数据源协议是UICollectionViewDataSource。...UICollectionViewDataSource中提供的方法如下: //提供视图中节的个数,这个方法需要注意数据的行是否能与每一行有几个单元格整除,不能整除时要多加一行 - (NSInteger)numberOfSectionsInCollectionView...委托协议UICollectionViewDelegate提供的常用方法如下: //返回这个UICollectionView是否可以被选择 -(BOOL)collectionView:(UICollectionView

    1.5K20
    领券