Mac开发_NSTreeNode

1、创建示例

2、API说明

@interface NSTreeNode : NSObject

/**
 * @brief 创建一个包含指定modelObject对象的新树节点
 *
 * @param modelObject    表示该节点的modelObject对象,可为nil
 * @return               新创建的树节点
 *
 * @discussion           该方法创建了一个新的NSTreeNode对象,该对象的representedObject属性被设置为指定的modelObject对象。
 *                       使用该方法可以快速创建一个用于作为树节点的对象,并将其关联到指定的modelObject上。
 *                       例如,当需要将一个modelObject插入到树中时,可以使用该方法来创建一个树节点对象,并将相应的modelObject关联到该节点上。
 */
+ (instancetype)treeNodeWithRepresentedObject:(nullable id)modelObject;

/**
 * @brief 创建一个包含指定modelObject对象的新树节点
 *
 * @param modelObject    表示该节点的modelObject对象,可为nil
 * @return               新创建的树节点
 *
 * @discussion           该方法创建了一个新的NSTreeNode对象,该对象的representedObject属性被设置为指定的modelObject对象。
 *                       使用该方法可以快速创建一个用于作为树节点的对象,并将其关联到指定的modelObject上。
 *                       例如,当需要将一个modelObject插入到树中时,可以使用该方法来创建一个树节点对象,并将相应的modelObject关联到该节点上。
 */
- (instancetype)initWithRepresentedObject:(nullable id)modelObject;

/**
 * @brief 查找指定位置下的节点,并返回该节点
 *
 * @param indexPath    指定位置所代表的NSIndexPath对象
 * @return             该位置下的节点,如果指定位置不存在,则返回nil。
 *
 * @discussion         该方法会在NSTreeNode及其子节点中查找指定位置下的节点,并返回该节点。
 *                     例如,当需要表示一个文件系统的树结构时,可以使用该方法来查找指定的文件夹节点,并在其下创建子节点。
 */
- (nullable NSTreeNode *)descendantNodeAtIndexPath:(NSIndexPath *)indexPath;

/**
 * @brief 使用指定的排序描述符对节点进行排序,可选择是否扩展到子节点
 *
 * @param sortDescriptors    指定的排序描述符的数组
 * @param recursively        是否扩展到子节点;YES表示扩展到子节点,NO表示仅对当前节点进行排序
 *
 * @discussion              该方法会对节点进行排序,使用指定的排序描述符进行比较。如果设置了recursively参数,也会对子节点进行排序。
 *                          例如,当需要按名称对文件系统的树结构进行排序时,可以使用该方法并提供适当的排序描述符来实现。
 */
- (void)sortWithSortDescriptors:(NSArray<NSSortDescriptor *> *)sortDescriptors recursively:(BOOL)recursively;

/** 该节点所表示的对象 */
@property(nullable, readonly, strong) id representedObject;
/** 该节点在树中的路径 */
@property(readonly, strong) NSIndexPath *indexPath;
/** 该节点是否为叶节点 */
@property(getter=isLeaf, readonly) BOOL leaf;
/** 该节点的子节点数组 */
@property(nullable, readonly, copy) NSArray<NSTreeNode *> *childNodes;
/** 可变的子节点数组 */
@property(readonly, strong) NSMutableArray<NSTreeNode *> *mutableChildNodes;
/** 该节点的父节点 */
@property(nullable, readonly, weak) NSTreeNode *parentNode;

@end
posted @ 2023-04-21 15:24  CH520  阅读(34)  评论(0编辑  收藏  举报