### Install InAppSettingsKit using Carthage Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Add InAppSettingsKit as a dependency in your Cartfile using the GitHub repository and 'master' branch, then run Carthage commands to build and link. ```ruby github "futuretap/InAppSettingsKit" "master" ``` -------------------------------- ### Install InAppSettingsKit using CocoaPods Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Integrate InAppSettingsKit into your project by adding the 'InAppSettingsKit' pod to your Podfile and running 'pod install'. ```ruby pod 'InAppSettingsKit' ``` -------------------------------- ### Install InAppSettingsKit using Swift Package Manager Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Add InAppSettingsKit to your project using Swift Package Manager by providing the repository URL in Xcode's package dependency settings. ```swift https://github.com/futuretap/InAppSettingsKit.git ``` -------------------------------- ### Display Settings View Controller in Swift Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Instantiate IASKAppSettingsViewController and push it onto the navigation stack. Ensure you have a navigation controller set up. ```swift let appSettingsViewController = IASKAppSettingsViewController() navigationController.pushViewController(appSettingsViewController, animated: true) ``` -------------------------------- ### Display Settings View Controller in Objective-C Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Instantiate IASKAppSettingsViewController and push it onto the navigation stack using Objective-C. Ensure a navigation controller is available. ```objectivec IASKAppSettingsViewController *appSettingsViewController = [[IASKAppSettingsViewController alloc] init]; [self.navigationController pushViewController:appSettingsViewController animated:YES]; ``` -------------------------------- ### Swift Package Manager Configuration Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Configure your Package.swift file to include InAppSettingsKit as a dependency and copy the InAppSettings.bundle resource. ```swift let package = Package( name: "SettingsPackage", platforms: [.iOS(.v17)], dependencies: [ .package(url: "https://github.com/futuretap/inappsettingskit", from: "3.4.0") ], .target( name: "SettingsPackage", dependencies: [ .product(name: "InAppSettingsKit", package: "inappsettingskit"), ], resources: [ .copy("InAppSettings.bundle") ] ) ) ``` -------------------------------- ### Using InAppSettingsKit in a Swift Package Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Create a UIViewControllerRepresentable to present IASKAppSettingsViewController, ensuring to set the bundle property to Bundle.module. ```swift struct InAppSettingsView: UIViewControllerRepresentable { func makeUIViewController(context: Context) -> some UIViewController { let iask = IASKAppSettingsViewController(style: .insetGrouped) iask.bundle = Bundle.module // IMPORTANT return iask } func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) { } } ``` -------------------------------- ### Using Custom View Controllers from Storyboard Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Specify IASKViewControllerStoryBoardId to load a view controller from a storyboard. Use IASKViewControllerStoryBoardFile to specify a storyboard other than the main one. ```plist IASKViewControllerStoryBoardId MyViewControllerID IASKViewControllerStoryBoardFile MyStoryboard ``` -------------------------------- ### Implement Mail Compose Delegate Method Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Implement this delegate method to customize mail composition, such as pre-filling the body or adding attachments, before the mail compose view is presented. ```objective-c - (BOOL)settingsViewController:(id)settingsViewController shouldPresentMailComposeViewController:(MFMailComposeViewController*)mailComposeViewController forSpecifier:(IASKSpecifier*)specifier; ``` -------------------------------- ### Configuring Text Content Type for Autofill Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Add IASKTextContentType with a constant name (e.g., EmailAddress) to support autofill based on content type. ```plist IASKTextContentType EmailAddress ``` -------------------------------- ### Using Custom View Controllers Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Specify IASKViewControllerClass and IASKViewControllerSelector to use a custom UIViewController subclass for child panes. The selector must accept the file name and the specifier. ```plist IASKViewControllerClass MyViewController IASKViewControllerSelector initWithSpecifier: ``` -------------------------------- ### Configuring Localizable Subtitles Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md The subtitle can be a dictionary with localizable subtitles based on the current value. Use 'YES' and 'NO' for boolean toggle values. A '__default__' key can be used for a fallback subtitle. ```plist IASKSubtitle YES Enabled NO Disabled __default__ Default Value ``` -------------------------------- ### Implement Button Tapped Delegate Method Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Implement this delegate method to handle actions when a button specifier is tapped. The sender is an IASKAppSettingsViewController instance, allowing access to its properties. ```objective-c - (void)settingsViewController:(IASKAppSettingsViewController*)sender buttonTappedForSpecifier:(IASKSpecifier*)specifier; ``` -------------------------------- ### Implement Date Picker Value Setting Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Implement this delegate method if you store dates in a custom format other than NSDate. It is called when the user changes the date/time value using the picker. ```objective-c - (void)settingsViewController:(IASKAppSettingsViewController*)sender setDate:(NSDate*)date forSpecifier:(IASKSpecifier*)specifier; ``` -------------------------------- ### Hide Cells in InAppSettingsKit Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Allows hiding specific cells or entire groups of settings cells dynamically. Use the `hiddenKeys` property to specify which keys should be hidden, either with or without animation. ```Objective-C - (void)[IASKAppSettingsViewController setHiddenKeys:(NSSet*)hiddenKeys animated:(BOOL)animated]; ``` ```Objective-C @property (nonatomic, strong) NSSet *hiddenKeys; ``` -------------------------------- ### Implement Date Picker Custom Date Retrieval Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Implement this delegate method if you store dates in a custom format other than NSDate. It is called when the user begins editing a date/time. ```objective-c - (NSDate*)settingsViewController:(IASKAppSettingsViewController*)sender dateForSpecifier:(IASKSpecifier*)specifier; ``` -------------------------------- ### Implement Custom Header View Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Implement this delegate method to provide a custom UIView for a PSGroupSpecifier section header. The section key can be retrieved using settingsViewController.settingsReader keyForSection:. ```objective-c - (UIView *)settingsViewController:(id)settingsViewController tableView:(UITableView *)tableView viewForHeaderForSection:(NSInteger)section; ``` -------------------------------- ### Setting Placeholder for Text Fields Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Use the IASKPlaceholder key to define placeholder text for TextField and TextView specifiers. ```plist IASKPlaceholder Enter text here ``` -------------------------------- ### Handle Custom View Selection Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Optional delegate method to catch tap events for custom views defined with IASKCustomViewSpecifier. This method is not called if File, IASKViewControllerClass, IASKViewControllerStoryBoardId, or IASKSegueIdentifier are specified. ```objective-c - (void)settingsViewController:(IASKAppSettingsViewController*)settingsViewController didSelectCustomViewSpecifier:(IASKSpecifier*)specifier; ``` -------------------------------- ### Implementing Validation Callback Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Implement the settingsViewController:validateSpecifier:textField:previousValue:replacement: delegate method for text field validation. The callback allows styling the text field and returning validation results. ```objc - (IASKValidationResult)settingsViewController:(IASKAppSettingsViewController*)settingsViewController validateSpecifier:(IASKSpecifier*)specifier textField:(IASKTextField*)textField previousValue:(nullable NSString*)previousValue replacement:(NSString* _Nonnull __autoreleasing *_Nullable)replacement; ``` -------------------------------- ### Customizing Toggle Style Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Specify IASKToggleStyle with the value Checkmark to display checkmarks for selected toggle switches. ```plist IASKToggleStyle Checkmark ``` -------------------------------- ### Adding Subtitles to Specifiers Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Use IASKSubtitle to define subtitles for Toggle, ChildPane, OpenURL, MailCompose, and Button specifiers. Subtitles are left-aligned. A child pane uses its value as a subtitle if IASKSubtitle is not specified. ```plist IASKSubtitle MySubtitle ``` -------------------------------- ### Adding Cell Icons Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Specify IASKCellImage to add an icon image to the left of the cell. The system searches for .png or @2x.png suffixes. Highlighted images can also be specified. ```plist IASKCellImage MyIcon ``` -------------------------------- ### Retrieve Section Key Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Conveniently retrieve the key for a given section index within the settings reader. Useful when implementing custom header/footer logic. ```objective-c NSString *key = [settingsViewController.settingsReader keyForSection:section]; ``` -------------------------------- ### Implement Custom Date Picker Title Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Implement this delegate method to customize the displayed value in the title cell above the date/time picker. ```objective-c - (NSString*)settingsViewController:(IASKAppSettingsViewController*)sender datePickerTitleForSpecifier:(IASKSpecifier*)specifier; ``` -------------------------------- ### Implement Custom Header Height Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Implement this delegate method to adjust the height of a custom header view for a PSGroupSpecifier section. ```objective-c - (CGFloat)settingsViewController:(id)settingsViewController tableView:(UITableView*)tableView heightForHeaderForSection:(NSInteger)section; ``` -------------------------------- ### Gather Default Values for NSUserDefaults Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Generates a dictionary of default values from settings property lists to register with NSUserDefaults. This helps maintain consistency between default values in the plist and NSUserDefaults. ```Objective-C NSDictionary *defaultDict = [appSettingsViewController.settingsReader gatherDefaultsLimitedToEditableFields:YES]; [NSUserDefaults.standardUserDefaults registerDefaults:defaultDict]; ``` -------------------------------- ### Implement Custom View Cell Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Required for IASKCustomViewSpecifier. Implement this delegate method to return a custom UITableViewCell. Use specifier.key to differentiate between custom views. Ensure reusable cells are used. ```objective-c - (UITableViewCell*)settingsViewController:(UITableViewController *)settingsViewController cellForSpecifier:(IASKSpecifier*)specifier; ``` -------------------------------- ### Implement Custom Header Title Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Implement this delegate method for simpler header title customization for PSGroupSpecifier sections, provided a custom view is not used or returns nil. Returns nil or a 0-length string to use the plist-defined title. ```objective-c - (NSString *)settingsViewController:(id)settingsViewController tableView:(UITableView*)tableView titleForHeaderForSection:(NSInteger)section; ``` -------------------------------- ### Implement Custom View Cell Height Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Required for IASKCustomViewSpecifier. Implement this delegate method to return the desired height for a custom table view cell. Use specifier.key to differentiate between custom views. ```objective-c - (CGFloat)settingsViewController:(UITableViewController *)settingsViewController heightForSpecifier:(IASKSpecifier *)specifier; ``` -------------------------------- ### Performing Segues Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Specify IASKSegueIdentifier to navigate to another view controller by performing a segue defined in your storyboard. ```plist IASKSegueIdentifier MySegueIdentifier ``` -------------------------------- ### Setting Text Alignment Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Override default text alignment using IASKTextAlignment with Left, Center, or Right values for specific element types. ```plist IASKTextAlignment IASKUITextAlignmentCenter ``` -------------------------------- ### Validate Child Pane Content Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Implement this delegate method to define validation rules for child pane content before enabling the 'Done' button. The content dictionary can be modified to autocorrect invalid settings. ```objective-c - (BOOL)settingsViewController:childPaneIsValidForSpecifier:contentDictionary: ``` -------------------------------- ### Disabling Variable Font Size Source: https://github.com/futuretap/inappsettingskit/blob/master/README.md Add IASKAdjustsFontSizeToFitWidth with a value of NO to disable the variable font size behavior for labels. ```plist IASKAdjustsFontSizeToFitWidth ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.