Skip to content

Customize UI elements via API

UIExtensionsManager provides APIs to control toolbars, panels, and UI behavior at runtime.

Toolbar visibility

objc
// Disable top toolbar
[extensionsManager enableTopToolbar:NO];

// Disable bottom toolbar
[extensionsManager enableBottomToolbar:NO];

// Disable compact top toolbar (fullscreen)
[extensionsManager enableSmallTopToolbar:NO];

// Disable compact bottom toolbar (fullscreen)
[extensionsManager enableSmallBottomToolbar:NO];

Toolbar button visibility

Use setToolbarItemHiddenWithTag:hidden: per button:

objc
// Hide a toolbar button
[extensionsManager setToolbarItemHiddenWithTag:FS_TOOLBAR_ITEM_TAG_XXX hidden:YES];

// Get visibility state for all toolbar buttons
NSDictionary *hiddenStatus = [extensionsManager getToolbarItemHiddenStatus];

Fullscreen mode

objc
// Enter fullscreen (hide top and bottom toolbars)
[extensionsManager setFullScreen:YES];

// Exit fullscreen
[extensionsManager setFullScreen:NO];

// Listen for fullscreen changes
[extensionsManager registerFullScreenListener:self];

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

Back button customization

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

Search panel

objc
// Show search panel
[extensionsManager showSearchBar:YES];

// Hide search panel
[extensionsManager showSearchBar:NO];
objc
// Enable/disable hyperlink navigation
extensionsManager.enableLinks = YES;

// Link highlight
extensionsManager.enableHighlightLinks = YES;
extensionsManager.linksHighlightColor = [UIColor colorWithRed:0 green:0 blue:1 alpha:0.3];

// Form highlight
extensionsManager.enableHighlightForm = YES;
extensionsManager.highlightFormColor = [UIColor colorWithRed:0.8 green:0.9 blue:1 alpha:0.5];

Annotation settings

objc
// Annotation author
extensionsManager.annotAuthor = @"张三";

// Keep adding annotations
extensionsManager.continueAddAnnot = YES;

// Disable document modification
[extensionsManager enableModification:NO];

Printing

UIExtensionsManager provides a static print helper:

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

API reference

See the API reference for UIExtensionsManager.