NSTableViewDataSource
NSTableViewDataSource протокол объявляет методы что экземпляр NSTableView использование, чтобы предоставить данные табличному представлению и позволить редактировать содержания его объекта источника данных.
Некоторые методы в этом протоколе, такой как tableView:objectValueForTableColumn:row: и numberOfRowsInTableView: вместе с другими методами, возвращающими данные, часто вызываются, таким образом, они должны быть эффективными.
Если Вы не используете привязку Какао для предоставления данных табличному представлению, следующие методы требуются:
tableView:setObjectValue:forTableColumn:row:(только основанные на ячейке таблицы)
Для узнавания больше о привязке Какао посмотрите, что Привязка Какао Программирует Темы.
Наследование
Не применимый
Оператор импорта
Swift
import AppKit
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.6 и позже.
-
Возвращает число записей, для которых управляют
aTableViewпо условию исходный объект.Объявление
Swift
optional func numberOfRowsInTableView(_aTableView: NSTableView) -> IntObjective C
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableViewПараметры
aTableViewТабличное представление, отправившее сообщение.
Возвращаемое значение
Число строк в
aTableView.Обсуждение
Экземпляр
NSTableViewиспользование этот метод для определения, сколько строк это должно создать и вывести на экран. ВашnumberOfRowsInTableView:реализацию вызывают очень часто, таким образом, это должно быть эффективно.И основанные на представлении табличные представления и основанные на ячейке табличные представления должны реализовать этот метод.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
-
Вызванный табличным представлением для возврата объекта данных связался с указанной строкой и столбцом.
Объявление
Swift
optional func tableView(_aTableView: NSTableView, objectValueForTableColumnaTableColumn: NSTableColumn?, rowrowIndex: Int) -> AnyObject?Objective C
- (id)tableView:(NSTableView *)aTableViewobjectValueForTableColumn:(NSTableColumn *)aTableColumnrow:(NSInteger)rowIndexПараметры
aTableViewТабличное представление, отправившее сообщение.
aTableColumnСтолбец в
aTableView.rowIndexСтрока элемента в
aTableColumn.Возвращаемое значение
Элемент в источнике данных в указанном столбце таблицы представления.
Обсуждение
tableView:objectValueForTableColumn:row:вызывается каждый раз, когда ячейка таблицы должна быть восстановлена, таким образом, это должно быть эффективно.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
-
Устанавливает объект данных для элемента в указанной строке и столбце.
Объявление
Swift
optional func tableView(_aTableView: NSTableView, setObjectValueanObject: AnyObject?, forTableColumnaTableColumn: NSTableColumn?, rowrowIndex: Int)Objective C
- (void)tableView:(NSTableView *)aTableViewsetObjectValue:(id)anObjectforTableColumn:(NSTableColumn *)aTableColumnrow:(NSInteger)rowIndexПараметры
aTableViewТабличное представление, отправившее сообщение.
anObjectНовое значение для элемента.
aTableColumnСтолбец в
aTableView.rowIndexСтрока элемента в
aTableColumn.Обсуждение
Этот метод предназначается для использования с основанными на ячейке табличными представлениями, это не должно использоваться с основанными на представлении табличными представлениями. В основанных на представлении таблицах используйте цель/действие для установки каждого элемента в ячейке представления.
Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
-
Вызванный, чтобы позволить таблице поддерживать многократное перетаскивание элемента.
Объявление
Swift
optional func tableView(_tableView: NSTableView, pasteboardWriterForRowrow: Int) -> NSPasteboardWriting?Objective C
- (id<NSPasteboardWriting>)tableView:(NSTableView *)tableViewpasteboardWriterForRow:(NSInteger)rowПараметры
tableViewТабличное представление.
rowСтрока.
Возвращаемое значение
Возвращает экземпляр
NSPasteboardItemили пользовательский объект, реализующийNSPasteboardWritingпротокол. Возвратnilисключает строку из того, чтобы быть перетащенным.Обсуждение
Этот метод требуется для перетаскивания мультиизображения.
Если этот метод реализован, то
tableView:writeRowsWithIndexes:toPasteboard:не будет вызван.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
Вызванный
aTableViewкогда кнопка мыши отпускается за столом представление, ранее решившее позволить отбрасывание.Объявление
Swift
optional func tableView(_aTableView: NSTableView, acceptDropinfo: NSDraggingInfo, rowrow: Int, dropOperationoperation: NSTableViewDropOperation) -> BoolObjective C
- (BOOL)tableView:(NSTableView *)aTableViewacceptDrop:(id<NSDraggingInfo>)inforow:(NSInteger)rowdropOperation:(NSTableViewDropOperation)operationПараметры
aTableViewТабличное представление, отправившее сообщение.
infoОбъект, содержащий больше информации об этой работе перетаскивания.
rowИндекс предложенной целевой строки.
operationТип перетаскивания работы.
Возвращаемое значение
YEStrueесли работа отбрасывания была успешна, иначеNOfalse.Обсуждение
Источник данных должен включить данные от области монтажа перетаскивания в реализации этого метода. Можно использовать
draggingPasteboardметод для получения данных для работы отбрасывания отinfo.Принять отбрасывание на второй строке,
rowбыл бы 2 иoperationбыл быNSTableViewDropOn. Принять отбрасывание ниже последней строки,rowбыл бы[aTableView numberOfRows]иoperationбыл быNSTableViewDropAbove.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
-
tableView (_: namesOfPromisedFilesDroppedAtDestination:forDraggedRowsWithIndexes:) - tableView:namesOfPromisedFilesDroppedAtDestination:forDraggedRowsWithIndexes:Возвращает массив имен файлов, представляющих
indexSetстроки для перетаскивания кdropDestination.Объявление
Swift
optional func tableView(_aTableView: NSTableView, namesOfPromisedFilesDroppedAtDestinationdropDestination: NSURL, forDraggedRowsWithIndexesindexSet: NSIndexSet) -> [AnyObject]Objective C
- (NSArray *)tableView:(NSTableView *)aTableViewnamesOfPromisedFilesDroppedAtDestination:(NSURL *)dropDestinationforDraggedRowsWithIndexes:(NSIndexSet *)indexSetПараметры
aTableViewТабличное представление, отправившее сообщение.
dropDestinationРасположение отбрасывания, где создаются файлы.
indexSetИндексы перетаскиваемых элементов.
Возвращаемое значение
Массив имен файлов (не полные пути) для создаваемых файлов, которые получатель обещает создать.
Обсуждение
Этот метод вызывают, когда место назначения признало, что обещание перетаскивает.
Для получения дополнительной информации о файле обещайте перетащить, см. документацию относительно
NSDraggingSourceпротокол иnamesOfPromisedFilesDroppedAtDestination:.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.4 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
-
tableView (_: validateDrop:proposedRow:proposedDropOperation:) - tableView:validateDrop:proposedRow:proposedDropOperation:Используемый
aTableViewопределить допустимую цель отбрасывания.Объявление
Swift
optional func tableView(_aTableView: NSTableView, validateDropinfo: NSDraggingInfo, proposedRowrow: Int, proposedDropOperationoperation: NSTableViewDropOperation) -> NSDragOperationObjective C
- (NSDragOperation)tableView:(NSTableView *)aTableViewvalidateDrop:(id<NSDraggingInfo>)infoproposedRow:(NSInteger)rowproposedDropOperation:(NSTableViewDropOperation)operationПараметры
aTableViewТабличное представление, отправившее сообщение.
infoОбъект, содержащий больше информации об этой работе перетаскивания.
rowИндекс предложенной целевой строки.
operationТип перетаскивания работы сделал предложение.
Возвращаемое значение
Работа перетаскивания источник данных выполнит.
Обсуждение
Источник данных может перенастроить отбрасывание путем вызова
setDropRow:dropOperation:и возврат чего-то другого, чемNSDragOperationNone. Источник данных мог бы перенастроить по различным причинам, например, для обеспечения лучше визуальной обратной связи при вставке в сортированную позицию.Предложить отбрасывание на второй строке,
rowбыл бы 2 иoperationбыл быNSTableViewDropOn. Предложить отбрасывание ниже последней строки,rowбыл бы[aTableView numberOfRows]иoperationбыл быNSTableViewDropAbove.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.0 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
-
Возвращает булево значение, указывающее, позволяется ли работа перетаскивания.
Объявление
Swift
optional func tableView(_aTableView: NSTableView, writeRowsWithIndexesrowIndexes: NSIndexSet, toPasteboardpboard: NSPasteboard) -> BoolObjective C
- (BOOL)tableView:(NSTableView *)aTableViewwriteRowsWithIndexes:(NSIndexSet *)rowIndexestoPasteboard:(NSPasteboard *)pboardПараметры
aTableViewТабличное представление, отправившее сообщение.
rowIndexesИндексный набор номеров строк, которые будут участвовать в перетаскивании.
pboardОбласть монтажа, в которую можно записать данные перетаскивания.
Возвращаемое значение
YESесли работа перетаскивания позволяется,NOиначе.Обсуждение
Вызванный
aTableViewпосле того, как было определено, что перетаскивание должно начаться, но прежде чем было запущено перетаскивание.Для отказа от перетаскивания возвратиться
NOfalse. Для запуска перетаскивания возвратитьсяYEStrueи поместите данные перетаскивания наpboard(данные, владелец, и т.д.). Изображение перетаскивания и другое перетаскивание связанная информация будет установлена и предоставлена табличным представлением, как только этот вызов возвращается сYEStrue.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.4 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
-
tableView (_: draggingSession:willBeginAtPoint:forRowIndexes:) - tableView:draggingSession:willBeginAtPoint:forRowIndexes:Реализуйте этот метод для определения, когда начнется сеанс перетаскивания.
Объявление
Swift
optional func tableView(_tableView: NSTableView, draggingSessionsession: NSDraggingSession, willBeginAtPointscreenPoint: NSPoint, forRowIndexesrowIndexes: NSIndexSet)Objective C
- (void)tableView:(NSTableView *)tableViewdraggingSession:(NSDraggingSession *)sessionwillBeginAtPoint:(NSPoint)screenPointforRowIndexes:(NSIndexSet *)rowIndexesПараметры
tableViewТабличное представление.
sessionСеанс перетаскивания.
screenPointНачальное расположение перетаскивания в координатах экрана.
rowIndexesИндексы строк, которые будут перетащены, исключая строки, не перетащенные вследствие
tableView:pasteboardWriterForRow:возвратnil.Обсуждение
Реализуйте этот метод для знания, когда сеанс перетаскивания соберется начать и потенциально изменить сеанс перетаскивания.
Перетащенный порядок элемента будет непосредственно соответствовать, массив писателя области монтажа раньше начинал сеанс перетаскивания с
NSViewметодbeginDraggingSessionWithItems:event:source:. Следовательно, порядок детерминирован, и может использоваться вtableView:acceptDrop:row:dropOperation:при перечисленииNSDraggingInfoклассы области монтажа.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
Реализуйте этот метод, чтобы позволить таблице обновлять элементы перетаскивания, когда они перетаскиваются по представлению.
Объявление
Swift
optional func tableView(_tableView: NSTableView, updateDraggingItemsForDragdraggingInfo: NSDraggingInfo)Objective C
- (void)tableView:(NSTableView *)tableViewupdateDraggingItemsForDrag:(id<NSDraggingInfo>)draggingInfoПараметры
tableViewТабличное представление.
draggingInfoИнформация о перетаскивании.
Обсуждение
Требуемый для перетаскивания мультиизображения. Обычно это включит вызов
enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:наdraggingInfoзначение параметра и установкаdraggingItemобъектimageComponentsProviderк надлежащему изображению на основе содержания.Для основанных на представлении табличных представлений можно использовать
NSTableCellViewметодdraggingImageComponents. Для основанных на ячейке таблиц используйтеNSCellметодdraggingImageComponentsWithFrame:inView:.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
tableView (_: draggingSession:endedAtPoint:operation:) - tableView:draggingSession:endedAtPoint:operation:Реализуйте этот метод для определения, когда закончится сеанс перетаскивания.
Объявление
Swift
optional func tableView(_tableView: NSTableView, draggingSessionsession: NSDraggingSession, endedAtPointscreenPoint: NSPoint, operationoperation: NSDragOperation)Objective C
- (void)tableView:(NSTableView *)tableViewdraggingSession:(NSDraggingSession *)sessionendedAtPoint:(NSPoint)screenPointoperation:(NSDragOperation)operationПараметры
tableViewТабличное представление.
sessionСеанс перетаскивания.
screenPointКонечное расположение перетаскивания в координатах экрана.
operationРабота перетаскивания. Посмотрите
NSDragOperationдля поддерживаемых значений.Обсуждение
Когда исходная работа перетаскивания закончилась в определенном расположении, таком как мусор, путем проверки на работу, этот метод делегата может использоваться для определения
NSDragOperationDelete.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.7 и позже.
-
Вызванный
aTableViewуказать, что сортировка, возможно, должна быть сделана.Объявление
Swift
optional func tableView(_aTableView: NSTableView, sortDescriptorsDidChangeoldDescriptors: [AnyObject])Objective C
- (void)tableView:(NSTableView *)aTableViewsortDescriptorsDidChange:(NSArray *)oldDescriptorsПараметры
aTableViewТабличное представление, отправившее сообщение.
oldDescriptorsМассив, содержащий предыдущие дескрипторы.
Обсуждение
Источник данных обычно виды и перезагрузки данные, и корректирует выборы соответственно. Если необходимо знать текущие дескрипторы вида, и источник данных не управляет ими сам, можно получить текущие дескрипторы вида путем отправки
aTableViewasortDescriptorsсообщение.Оператор импорта
Objective C
@import AppKit;Swift
import AppKitДоступность
Доступный в OS X v10.3 и позже.
Доступный как часть неофициального протокола до OS X v10.6.
