- 因为NSTableView在开发中比较常用,所以记录一下它的属性和方法,方便查询
//构造方法
public init(frame frameRect: NSRect)
public init?(coder: NSCoder)
//数据源和代理
weak open var dataSource: NSTableViewDataSource?
weak open var delegate: NSTableViewDelegate?
//设置头视图,会被列头图就行覆盖
open var headerView: NSTableHeaderView?
//设置头图右侧视图 可以自定义图标
open var cornerView: NSView?
//设置是否允许列拖拽排序
open var allowsColumnReordering: Bool
//设置是否允许调整列宽度
open var allowsColumnResizing: Bool
//调整列宽度的风格
open var columnAutoresizingStyle: NSTableViewColumnAutoresizingStyle
//设置分割线风格
open var gridStyleMask: NSTableViewGridLineStyle
//设置cell之间的间隔 需要设置为NSSize对象
open var intercellSpacing: NSSize
//是否开启斑马线
open var usesAlternatingRowBackgroundColors: Bool
//背景颜色
@NSCopying open var backgroundColor: NSColor
//设置分割线颜色
@NSCopying open var gridColor: NSColor
//设置尺寸风格
@available(OSX 10.7, *)
open var rowSizeStyle: NSTableViewRowSizeStyle
//设置有效的行类型
@available(OSX 10.7, *)
open var effectiveRowSizeStyle: NSTableViewRowSizeStyle { get }
//行高
open var rowHeight: CGFloat
//记录行高度的改变
open func noteHeightOfRows(withIndexesChanged indexSet: IndexSet)
//获取所有列
open var tableColumns: [NSTableColumn] { get }
//列的个数
open var numberOfColumns: Int { get }
//行的个数
open var numberOfRows: Int { get }
//添加列
open func addTableColumn(_ tableColumn: NSTableColumn)
//删除列
open func removeTableColumn(_ tableColumn: NSTableColumn)
//移动列
open func moveColumn(_ oldIndex: Int, toColumn newIndex: Int)
//根据identifier获取某个列对象的下表
open func column(withIdentifier identifier: String) -> Int
//根据identifier获取某个列对象
open func tableColumn(withIdentifier identifier: String) -> NSTableColumn?
//标题
open func tile()
//进行自动尺寸的调整
open func sizeToFit()
//进行最后一列尺寸的调整
open func sizeLastColumnToFit()
//滚动到指定行可见
open func scrollRowToVisible(_ row: Int)
//滚动到指定列可见
open func scrollColumnToVisible(_ column: Int)
//重新加载数据
open func reloadData()
//记录行数的改变
open func noteNumberOfRowsChanged()
//重新加载指定位置的数据
@available(OSX 10.6, *)
open func reloadData(forRowIndexes rowIndexes: IndexSet, columnIndexes: IndexSet)
//获取编辑的列
open var editedColumn: Int { get }
//获取编辑的行
open var editedRow: Int { get }
//获取点击的列
open var clickedColumn: Int { get }
//获取点击的行
open var clickedRow: Int { get }
//设置双击方法
open var doubleAction: Selector?
//排序回调函数
open var sortDescriptors: [NSSortDescriptor]
//设置列头提示图片
open func setIndicatorImage(_ image: NSImage?, in tableColumn: NSTableColumn)
//获取列头提示图片
open func indicatorImage(in tableColumn: NSTableColumn) -> NSImage?
//获取高亮的列
unowned(unsafe) open var highlightedTableColumn: NSTableColumn?
//下面这些方法与列表拖拽有关
open var verticalMotionCanBeginDrag: Bool
open func canDragRows(with rowIndexes: IndexSet, at mouseDownPoint: NSPoint) -> Bool
open func dragImageForRows(with dragRows: IndexSet, tableColumns: [NSTableColumn], event dragEvent: NSEvent, offset dragImageOffset: NSPointPointer) -> NSImage
open func setDraggingSourceOperationMask(_ mask: NSDragOperation, forLocal isLocal: Bool)
open func setDropRow(_ row: Int, dropOperation: NSTableViewDropOperation)
//下面这些方法和列表选中有关
//是否支持多选
open var allowsMultipleSelection: Bool
//是否允许都不选中
open var allowsEmptySelection: Bool
//是否支持选中列 如果设置为YES 点击列头会将整列选中
open var allowsColumnSelection: Bool
//全选 用于子类重写
open func selectAll(_ sender: Any?)
//全不选 用于子类重写
open func deselectAll(_ sender: Any?)
//选中列
open func selectColumnIndexes(_ indexes: IndexSet, byExtendingSelection extend: Bool)
//选中行
open func selectRowIndexes(_ indexes: IndexSet, byExtendingSelection extend: Bool)
//获取所有选中的index
open var selectedColumnIndexes: IndexSet { get }
//获取所有选中的行
open var selectedRowIndexes: IndexSet { get }
//取消某列的选中
open func deselectColumn(_ column: Int)
//取消某行的选中
open func deselectRow(_ row: Int)
//获取被选中的列
open var selectedColumn: Int { get }
//获取被选中的行
open var selectedRow: Int { get }
//判断某列是否被选中
open func isColumnSelected(_ column: Int) -> Bool
//判断某行是否被选中
open func isRowSelected(_ row: Int) -> Bool
//获取选中的列数
open var numberOfSelectedColumns: Int { get }
//获取选中的行数
open var numberOfSelectedRows: Int { get }
//允许被选中
@available(OSX 10.5, *)
open var allowsTypeSelect: Bool
//设置选中的高亮状态
@available(OSX 10.5, *)
open var selectionHighlightStyle: NSTableViewSelectionHighlightStyle
//设置拖拽风格
@available(OSX 10.6, *)
open var draggingDestinationFeedbackStyle: NSTableViewDraggingDestinationFeedbackStyle
//获取某列的位置尺寸
open func rect(ofColumn column: Int) -> NSRect
//获取某行的位置尺寸
open func rect(ofRow row: Int) -> NSRect
//获取某个范围内的列
@available(OSX 10.5, *)
open func columnIndexes(in rect: NSRect) -> IndexSet
//获取某个范围内的行
open func rows(in rect: NSRect) -> NSRange
//获取包含某个点的列
open func column(at point: NSPoint) -> Int
//获取包含某个点的行
open func row(at point: NSPoint) -> Int
//获取某个cell的位置尺寸
open func frameOfCell(atColumn column: Int, row: Int) -> NSRect
//自动保存名字
open var autosaveName: String?
//是否自动保存列
open var autosaveTableColumns: Bool
//更改列
open func editColumn(_ column: Int, row: Int, with event: NSEvent?, select: Bool)
//手动绘制某行
open func drawRow(_ row: Int, clipRect: NSRect)
//绘制高亮选中状态
open func highlightSelection(inClipRect clipRect: NSRect)
//手动绘制网格
open func drawGrid(inClipRect clipRect: NSRect)
//手动绘制背景色
open func drawBackground(inClipRect clipRect: NSRect)
//获取某个位置的View,用于view-base
@available(OSX 10.7, *)
open func view(atColumn column: Int, row: Int, makeIfNecessary: Bool) -> NSView?
//获取某行的视图 用于view-base
@available(OSX 10.7, *)
open func rowView(atRow row: Int, makeIfNecessary: Bool) -> NSTableRowView?
//获取某个View所在的行 用于view-base
@available(OSX 10.7, *)
open func row(for view: NSView) -> Int
//获取某个View所在的列 用于view-base
@available(OSX 10.7, *)
open func column(for view: NSView) -> Int
//创建一个用于渲染的View 用于view-base
@available(OSX 10.7, *)
open func make(withIdentifier identifier: String, owner: Any?) -> NSView?
//列出可用的行视图
@available(OSX 10.7, *)
open func enumerateAvailableRowViews(_ handler: (NSTableRowView, Int) -> Swift.Void)
//是否允许某行浮动
@available(OSX 10.7, *)
open var floatsGroupRows: Bool
//是否隐藏左右滑动时的功能按钮
@available(OSX 10.11, *)
open var rowActionsVisible: Bool
//下面这些方法用来根据列表数据
//开始更新
@available(OSX 10.7, *)
open func beginUpdates()
//结束更新
@available(OSX 10.7, *)
open func endUpdates()
//插入行
@available(OSX 10.7, *)
open func insertRows(at indexes: IndexSet, withAnimation animationOptions: NSTableViewAnimationOptions = [])
//删除行
@available(OSX 10.7, *)
open func removeRows(at indexes: IndexSet, withAnimation animationOptions: NSTableViewAnimationOptions = [])
//移动行
@available(OSX 10.7, *)
open func moveRow(at oldIndex: Int, to newIndex: Int)
//隐藏行
@available(OSX 10.11, *)
open func hideRows(at indexes: IndexSet, withAnimation rowAnimation: NSTableViewAnimationOptions = [])
//取消隐藏行
@available(OSX 10.11, *)
open func unhideRows(at indexes: IndexSet, withAnimation rowAnimation: NSTableViewAnimationOptions = [])
//所有隐藏状态的行
@available(OSX 10.11, *)
open var hiddenRowIndexes: IndexSet { get }
//注册某个NSNib类进行复用
@available(OSX 10.8, *)
open func register(_ nib: NSNib?, forIdentifier identifier: String)
//获取注册过的NSNib
@available(OSX 10.8, *)
open var registeredNibsByIdentifier: [String : NSNib]? { get }
//有行被添加时调用
@available(OSX 10.7, *)
open func didAdd(_ rowView: NSTableRowView, forRow row: Int)
//有行被移动时调用
@available(OSX 10.7, *)
open func didRemove(_ rowView: NSTableRowView, forRow row: Int)
//是否将tableView设置成静态
@available(OSX 10.10, *)
open var usesStaticContents: Bool
//用户界面布局方向:枚举类型
open var userInterfaceLayoutDirection: NSUserInterfaceLayoutDirection
网友评论