GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - brunow/FormKit.m: Not maintained anymore

BranchesTags
Open more actions menu

Latest commit

 

History

88 Commits
88 Commits

Folders and files

NameName
Last commit message
Last commit date
FormKit.xcworkspace
FormKit.xcworkspace
 
 
FormKit
FormKit
 
 
FormKitDemo.xcodeproj
FormKitDemo.xcodeproj
 
 
FormKitDemo
FormKitDemo
 
 
FormKitDemoTests
FormKitDemoTests
 
 
Kiwi
Kiwi
 
 
Tests
Tests
 
 
Vendor
Vendor
 
 
.gitignore
.gitignore
 
 
[email protected]
[email protected]
 
 
FormKit.m.podspec
FormKit.m.podspec
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
form-mapping.png
form-mapping.png
 
 
form-select.png
form-select.png
 
 

Repository files navigation

FormKit.m

FormKit.m is a library that helps building forms with a table view.

It also handles synchronization of data between your model and the view (cells) when the user makes edits.

Everything looks good on iPhone and iPad for iOS versions 6+.

Installation

Copy FormKit dir into your project.

Or with CocoaPods

pod 'FormKit.m'

Example code

self.formModel = [FKFormModel formTableModelForTableView:self.tableView navigationController:self.navigationController];

self.formModel.labelTextColor = [UIColor blackColor];
self.formModel.valueTextColor = [UIColor lightGrayColor];
  
[FKFormMapping mappingForClass:[Movie class] block:^(FKFormMapping *mapping) {
    [mapping sectionWithTitle:@"Information section" identifier:@"info"];
    [mapping mapAttribute:@"title" title:@"Title" type:FKFormAttributeMappingTypeText];
    [mapping mapAttribute:@"releaseDate" title:@"ReleaseDate" type:FKFormAttributeMappingTypeDate];
    [mapping mapAttribute:@"suitAllAges" title:@"All ages" type:FKFormAttributeMappingTypeBoolean];
    
    // Read-only field
    [mapping mapAttribute:@"shortName" title:@"ShortName" type:FKFormAttributeMappingTypeLabel];
    
    [mapping mapAttribute:@"numberOfActor" title:@"Number of actor" type:FKFormAttributeMappingTypeInteger];
    [mapping mapAttribute:@"content" title:@"Content" type:FKFormAttributeMappingTypeBigText];
    
    // Select fields using a picker or pushing a selection view controller
    [mapping mapAttribute:@"choice"
                        title:@"Choices"
                 showInPicker:NO
            selectValuesBlock:^NSArray *(id value, id object, NSInteger *selectedValueIndex){
                *selectedValueIndex = 1;
                return [NSArray arrayWithObjects:@"choice1", @"choice2", nil];
    } valueFromSelectBlock:^id(id value, id object, NSInteger selectedValueIndex) {
        return value;
    } labelValueBlock:^id(id value, id object) {
        return value;
    }];
    
    [mapping buttonSave:@"Save" handler:^{
    }];
    
    [self.formModel registerMapping:mapping];
}];

[self.formModel loadFieldsWithObject:movie];

Form Mapping

Validation

[formMapping validationForAttribute:@"title" validBlock:^BOOL(NSString *value, id object) {
  return value.length < 10;
} errorMessageBlock:^NSString *(id value, id object) {
  return @"Text is too long.";
}];

Contact

Bruno Wernimont

  • Twitter - @brunowernimont

Contributors

  • Reiner Pittinger - @rpitting

Bitdeli Badge

About

Not maintained anymore

twitter.com/brunowernimont

Resources

Readme
Apache-2.0 license
Activity

Stars

268 stars

Watchers

23 watching

Forks

39 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.