Foxit PDF SDK

构造函数 | 属性 | 所有成员列表
FSBookmark类 参考
类 FSBookmark 继承关系图:

## 构造函数
(FSPDFDictionary *) | - getDict
| 获取当前书签的PDF字典。 更多...
(FSBookmark *) | - getFirstChild
| 获取第一个子书签。 更多...
(FSBookmark *) | - getNextSibling
| 获取下一个兄弟书签。 更多...
(FSBookmark *) | - getParent
| 获取父书签。 更多...
(BOOL) | - hasChild
| 检查当前书签是否有子书签。 更多...
(id) | - initWithOther:
| 构造函数，使用另一个书签对象。 更多...
(id) | - initWithPdf_doc:bookmark_dict:
| 构造函数，带参数。 更多...
(FSBookmark *) | - insert:position:
| 根据与当前书签的关系位置插入新书签。 更多...
(BOOL) | - isEmpty
| 检查当前对象是否为空。 更多...
(BOOL) | - isFirstChild
| 检查当前书签是否为其父书签的第一个子书签。 更多...
(BOOL) | - isLastChild
| 检查当前书签是否为其父书签的最后一个子书签。 更多...
(BOOL) | - isRoot
| 检查当前书签是否为根书签。 更多...
(BOOL) | - moveTo:position:
| 将当前书签移动为另一个书签的子书签或兄弟书签。 更多...
(BOOL) | - removeAction
| 删除动作。 更多...

## 属性
FSAction * | action
| 获取动作。 更多...
unsigned int | color
| 获取用于显示标题的颜色。 更多...
FSDestination * | destination
| 获取目标。 更多...
unsigned int | style
| 获取用于显示标题的样式。 更多...
NSString * | title
| 获取标题。 更多...

## 详细描述

PDF书签也被称为"大纲"。它是一个树状结构的层次结构。它允许用户通过选择书签轻松地浏览PDF文档。 一个书签包含一个目标或动作，用来指示当用户选择它时如何响应。
为了获取/设置书签树，必须首先调用函数 FSPDFDoc::getRootBookmark 来 获取整个书签树的根。如果"根书签"不存在，可以调用函数 FSPDFDoc::createRootBookmark 来创建一个新的"根书签"。 在这里，"根书签"是一个抽象对象。它代表PDF文档的"大纲"。 有关"大纲"的更多详细信息，请参阅PDF参考文档1.7的第8.2.3节。 "根书签"只能有一些子书签，但没有父书签， 没有下一个兄弟书签或任何数据（包括书签数据、目标数据和动作数据）。 并且"根书签"不能在应用程序UI上显示，因为它没有数据。因此，对于根书签， 只能使用函数 FSBookmark::getFirstChild。
从根书签开始，可以遍历书签树并访问每个书签节点。
此类提供了几个函数来从当前书签获取/设置其他书签。例如：

- 要访问父书签，请使用函数 FSBookmark::getParent。
- 要访问第一个子书签，请使用函数 FSBookmark::getFirstChild。
- 要访问下一个兄弟书签，请使用函数 FSBookmark::getNextSibling。
- 要插入新书签，请使用函数 FSBookmark::insert:position:。
- 要移动书签，请使用函数 FSBookmark::moveTo:position:。

此类还提供了获取/设置PDF书签数据的函数。

参见
  FSPDFDoc

## 函数文档

## ◆ getDict()

- (FSPDFDictionary *) getDict |  |  |

获取当前书签的PDF字典。

返回
  PDF字典。如果有任何错误，此函数将返回nil。

## ◆ getFirstChild()

- (FSBookmark *) getFirstChild |  |  |

获取第一个子书签。

返回
  第一个子书签对象。

## ◆ getNextSibling()

- (FSBookmark *) getNextSibling |  |  |

获取下一个兄弟书签。

如果当前书签由函数 FSPDFDoc::getRootBookmark 或 FSPDFDoc::createRootBookmark 返回， 这意味着它是"根书签"，它没有任何兄弟书签。在这种情况下，此函数将 返回一个书签对象，其函数 FSBookmark::isEmpty 返回 YES。

返回
  下一个兄弟书签对象。

## ◆ getParent()

- (FSBookmark *) getParent |  |  |

获取父书签。

如果当前书签由函数 FSPDFDoc::getRootBookmark 或 FSPDFDoc::createRootBookmark 返回， 这意味着它是"根书签"，它没有父书签。在这种情况下，此函数将 返回一个书签对象，其函数 FSBookmark::isEmpty 返回 YES。

返回
  父书签对象。

## ◆ hasChild()

- (BOOL) hasChild |  |  |

检查当前书签是否有子书签。

返回
  YES表示当前书签有子书签，NO表示 当前书签没有任何子书签。

## ◆ initWithOther:()

- (id) initWithOther: |  | (FSBookmark*) | other |

构造函数，使用另一个书签对象。

参数

  [in] | other | 另一个书签对象。

## ◆ initWithPdf_doc:bookmark_dict:()

- (id) initWithPdf_doc: |  | (FSPDFDoc*) | pdf_doc
bookmark_dict: |  | (FSPDFDictionary*) | bookmark_dict

构造函数，带参数。

参数

  [in] | pdf_doc | 一个有效的PDF文档对象。
  [in] | bookmark_dict | 表示书签的PDF字典。此PDF字典应该已经存在于 参数pdf_doc所表示的PDF文档中。

## ◆ insert:position:()

- (FSBookmark *) insert: |  | (NSString *) | title
position: |  | (FSBookmarkPosition) | position

根据与当前书签的关系位置插入新书签。

对于新书签，颜色默认为0x000000，样式默认为 FSBookmarkStyleNormal。

参数

  [in] | title | 新书签的标题字符串。它不应该是空字符串。
  [in] | position | 要插入的新书签项目的位置，基于当前书签。 请参阅从 FSBookmarkPosFirstChild 开始的值， 这应该是这些值中的一个。 如果当前书签只是"根书签"，参数position只能是 FSBookmarkPosFirstChild 或 FSBookmarkPosLastChild。

返回
  一个新的书签对象。

## ◆ isEmpty()

- (BOOL) isEmpty |  |  |

检查当前对象是否为空。

当当前对象为空时，意味着当前对象是无用的。

返回
  YES表示当前对象为空，NO表示不为空。

## ◆ isFirstChild()

- (BOOL) isFirstChild |  |  |

检查当前书签是否为其父书签的第一个子书签。

返回
  YES表示当前书签是其父书签的第一个子书签， NO表示不是。

## ◆ isLastChild()

- (BOOL) isLastChild |  |  |

检查当前书签是否为其父书签的最后一个子书签。

返回
  YES表示当前书签是其父书签的最后一个子书签， NO表示不是。

## ◆ isRoot()

- (BOOL) isRoot |  |  |

检查当前书签是否为根书签。

"根书签"是一个抽象对象。它代表PDF文档的"大纲"。 有关"大纲"的更多详细信息，请参阅PDF参考文档1.7的第8.2.3节。 "根书签"只能有一些子书签，但没有父书签， 没有下一个兄弟书签或任何数据（包括书签数据、目标数据和动作数据）。 并且"根书签"不能在应用程序UI上显示，因为它没有数据。

返回
  YES表示当前书签是根书签，NO表示不是。

## ◆ moveTo:position:()

- (BOOL) moveTo: |  | (FSBookmark*) | dest_bookmark
position: |  | (FSBookmarkPosition) | position

将当前书签移动为另一个书签的子书签或兄弟书签。

如果当前书签由函数 FSPDFDoc::getRootBookmark 或 FSPDFDoc::createRootBookmark 返回， 这意味着它是"根书签"，不能移动。在这种情况下，此函数将返回NO。

参数

  [in] | dest_bookmark | 目标书签，当前书签将移动为其子书签或兄弟书签。
  [in] | position | 当前书签与目标书签的位置关系。 请参阅从 FSBookmarkPosFirstChild 开始的值， 这应该是这些值中的一个。

返回
  YES表示成功，NO表示失败。

## ◆ removeAction()

- (BOOL) removeAction |  |  |

删除动作。

如果当前书签由函数 FSPDFDoc::getRootBookmark 或 FSPDFDoc::createRootBookmark 返回， 这意味着它是"根书签"，它没有任何动作信息。在这种情况下，此函数将 直接返回YES。

返回
  YES表示成功，NO表示失败。

## 属性说明

## ◆ action

- (FSAction *) action
| read write nonatomic weak

获取动作。

如果当前书签由函数 FSPDFDoc::getRootBookmark 或 FSPDFDoc::createRootBookmark 返回， 这意味着它是"根书签"，它没有任何动作信息。在这种情况下，此函数将 返回一个动作对象，其函数 FSAction::isEmpty 返回 YES。

## ◆ color

- (unsigned int) color
| read write nonatomic assign

获取用于显示标题的颜色。

如果当前书签由函数 FSPDFDoc::getRootBookmark 或 FSPDFDoc::createRootBookmark 返回， 这意味着它是"根书签"，它没有颜色信息。在这种情况下，此函数将返回0x000000。

## ◆ destination

- (FSDestination *) destination
| read write nonatomic weak

获取目标。

书签的目标是当前文档中书签可以"跳转到"的某个位置。 如果书签不能"跳转到"当前文档中的任何位置，这意味着无法检索目标信息， 此函数将返回一个目标对象，其函数 FSDestination::isEmpty 返回 YES。
如果当前书签由函数 FSPDFDoc::getRootBookmark 或 FSPDFDoc::createRootBookmark 返回， 这意味着它是"根书签"，它没有任何目标信息。在这种情况下，此函数将 返回一个目标对象，其函数 FSDestination::isEmpty 返回 YES。

## ◆ style

- (unsigned int) style
| read write nonatomic assign

获取用于显示标题的样式。

如果当前书签由函数 FSPDFDoc::getRootBookmark 或 FSPDFDoc::createRootBookmark 返回， 这意味着它是"根书签"，它没有样式信息。在这种情况下，此函数将返回 FSBookmarkStyleNormal。

## ◆ title

- (NSString *) title
| read write nonatomic weak

获取标题。

如果当前书签由函数 FSPDFDoc::getRootBookmark 或 FSPDFDoc::createRootBookmark 返回， 这意味着它是"根书签"，它没有标题。在这种情况下，此函数将返回一个空字符串。