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 *)
aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
row:(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 *)
aTableView
setObjectValue:(id)anObject
forTableColumn:(NSTableColumn *)aTableColumn
row:(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 *)
tableView
pasteboardWriterForRow:(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 *)
aTableView
acceptDrop:(id<NSDraggingInfo>)info
row:(NSInteger)row
dropOperation:(NSTableViewDropOperation)operation
Параметры
aTableView
Табличное представление, отправившее сообщение.
info
Объект, содержащий больше информации об этой работе перетаскивания.
row
Индекс предложенной целевой строки.
operation
Тип перетаскивания работы.
Возвращаемое значение
YES
true
если работа отбрасывания была успешна, иначеNO
false
.Обсуждение
Источник данных должен включить данные от области монтажа перетаскивания в реализации этого метода. Можно использовать
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 *)
aTableView
namesOfPromisedFilesDroppedAtDestination:(NSURL *)dropDestination
forDraggedRowsWithIndexes:(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 *)
aTableView
validateDrop:(id<NSDraggingInfo>)info
proposedRow:(NSInteger)row
proposedDropOperation:(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 *)
aTableView
writeRowsWithIndexes:(NSIndexSet *)rowIndexes
toPasteboard:(NSPasteboard *)pboard
Параметры
aTableView
Табличное представление, отправившее сообщение.
rowIndexes
Индексный набор номеров строк, которые будут участвовать в перетаскивании.
pboard
Область монтажа, в которую можно записать данные перетаскивания.
Возвращаемое значение
YES
если работа перетаскивания позволяется,NO
иначе.Обсуждение
Вызванный
aTableView
после того, как было определено, что перетаскивание должно начаться, но прежде чем было запущено перетаскивание.Для отказа от перетаскивания возвратиться
NO
false
. Для запуска перетаскивания возвратитьсяYES
true
и поместите данные перетаскивания наpboard
(данные, владелец, и т.д.). Изображение перетаскивания и другое перетаскивание связанная информация будет установлена и предоставлена табличным представлением, как только этот вызов возвращается сYES
true
.Оператор импорта
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 *)
tableView
draggingSession:(NSDraggingSession *)session
willBeginAtPoint:(NSPoint)screenPoint
forRowIndexes:(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 *)
tableView
updateDraggingItemsForDrag:(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 *)
tableView
draggingSession:(NSDraggingSession *)session
endedAtPoint:(NSPoint)screenPoint
operation:(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 *)
aTableView
sortDescriptorsDidChange:(NSArray *)oldDescriptors
Параметры
aTableView
Табличное представление, отправившее сообщение.
oldDescriptors
Массив, содержащий предыдущие дескрипторы.
Обсуждение
Источник данных обычно виды и перезагрузки данные, и корректирует выборы соответственно. Если необходимо знать текущие дескрипторы вида, и источник данных не управляет ими сам, можно получить текущие дескрипторы вида путем отправки
aTableView
asortDescriptors
сообщение.Оператор импорта
Objective C
@import AppKit;
Swift
import AppKit
Доступность
Доступный в OS X v10.3 и позже.
Доступный как часть неофициального протокола до OS X v10.6.