我正在嘗試使用按鈕從表格中清除所有內容。基本上重置表。我使用以下內容一次洗掉一個切片,但如何從表中清除所有切片?先感謝您!
- (IBAction)handleRemoveSliceTapped:(NSButton *)sender {
NSInteger selectedRow = [self.sliceTable selectedRow];
if (selectedRow < 0) {
return;
}
if ([self.sliceTimes count] == 0) {
return;
}
NSIndexSet *removalSet = [NSIndexSet indexSetWithIndex:selectedRow];
[self.sliceTable removeRowsAtIndexes:removalSet withAnimation:NSTableViewAnimationSlideUp];
[self.sliceTimes removeObjectAtIndex:selectedRow];
[self.sliceTable reloadData];
uj5u.com熱心網友回復:
如果您的 NSTableViewDataSource numberOfRowsInTableView 回傳 0,則該表將變為空。
因此,您只需清除視圖模型,然后重新加載表:
[self.sliceTimes removeAllObjects];
[self.sliceTable reloadData];
這是沒有影片的。如果您需要影片,請在 NSIndexSet 中包含所有行索引,并在 beginUpdates/endUpdates 之間進行更新(請參閱https://developer.apple.com/documentation/appkit/nstableview/1527288-beginupdates?language=objc):
NSIndexSet *removalSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, self.sliceTimes.count)];
[self.sliceTable beginUpdates];
[self.sliceTable removeRowsAtIndexes:removalSet withAnimation:NSTableViewAnimationSlideUp];
[self.sliceTimes removeAllObjects];
[self.sliceTable endUpdates];
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/426054.html
下一篇:如何從目標c中的塊回傳布林值?
