Skip to content

通过 API 自定义 UI 元素

福昕 PDF SDK iOS 版的 UIExtensionsManager 提供了丰富的 API,可以在运行时动态控制工具栏、面板和 UI 行为。

控制工具栏显隐

UIExtensionsManager 提供了控制顶部和底部工具栏的 API:

objc
// 禁用顶部工具栏
[extensionsManager enableTopToolbar:NO];

// 禁用底部工具栏
[extensionsManager enableBottomToolbar:NO];

// 禁用精简顶部工具栏(全屏模式下)
[extensionsManager enableSmallTopToolbar:NO];

// 禁用精简底部工具栏(全屏模式下)
[extensionsManager enableSmallBottomToolbar:NO];

控制工具栏按钮显隐

通过 setToolbarItemHiddenWithTag:hidden: 控制单个按钮的显隐:

objc
// 隐藏指定工具栏按钮
[extensionsManager setToolbarItemHiddenWithTag:FS_TOOLBAR_ITEM_TAG_XXX hidden:YES];

// 获取所有工具栏按钮的显隐状态
NSDictionary *hiddenStatus = [extensionsManager getToolbarItemHiddenStatus];

全屏模式

objc
// 进入全屏模式(隐藏顶部和底部工具栏)
[extensionsManager setFullScreen:YES];

// 退出全屏模式
[extensionsManager setFullScreen:NO];

// 监听全屏状态变化
[extensionsManager registerFullScreenListener:self];

// IFullScreenListener
- (void)onFullScreen:(BOOL)isFullScreen {
    NSLog(@"全屏模式: %@", isFullScreen ? @"YES" : @"NO");
}

返回按钮自定义

objc
extensionsManager.goBack = ^{
    [self.navigationController popViewControllerAnimated:YES];
};

搜索面板

objc
// 显示搜索面板
[extensionsManager showSearchBar:YES];

// 隐藏搜索面板
[extensionsManager showSearchBar:NO];

链接与表单高亮

objc
// 启用/禁用超链接跳转
extensionsManager.enableLinks = YES;

// 启用/禁用链接高亮
extensionsManager.enableHighlightLinks = YES;
extensionsManager.linksHighlightColor = [UIColor colorWithRed:0 green:0 blue:1 alpha:0.3];

// 启用/禁用表单高亮
extensionsManager.enableHighlightForm = YES;
extensionsManager.highlightFormColor = [UIColor colorWithRed:0.8 green:0.9 blue:1 alpha:0.5];

注释相关设置

objc
// 设置注释作者
extensionsManager.annotAuthor = @"张三";

// 设置是否持续添加注释
extensionsManager.continueAddAnnot = YES;

// 禁止文档修改
[extensionsManager enableModification:NO];

打印

UIExtensionsManager 提供了静态打印方法:

objc
[UIExtensionsManager printDoc:doc animated:YES inWindow:self.view.window
    jobName:@"打印测试" delegate:nil completionHandler:^(
        UIPrintInteractionController *controller, BOOL completed, NSError *error) {
    if (completed) {
        NSLog(@"打印完成");
    }
}];

API 参考

UIExtensionsManager 的完整接口说明请参阅 API 手册