{"id":15293576,"url":"https://github.com/tichise/formsheettextview","last_synced_at":"2025-10-05T16:53:59.074Z","repository":{"id":47037550,"uuid":"100936277","full_name":"tichise/FormSheetTextView","owner":"tichise","description":"FormSheetTextView is a FormSheet style UITextView.","archived":false,"fork":false,"pushed_at":"2024-08-22T12:48:21.000Z","size":67,"stargazers_count":5,"open_issues_count":2,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-30T05:26:18.600Z","etag":null,"topics":["cocoapods","objective-c","objectivec","swift","swift3"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tichise.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-21T09:31:24.000Z","updated_at":"2024-08-22T12:47:46.000Z","dependencies_parsed_at":"2024-10-14T22:21:30.828Z","dependency_job_id":"89aee8cb-81b3-4127-aac3-331d00e48b5c","html_url":"https://github.com/tichise/FormSheetTextView","commit_stats":{"total_commits":64,"total_committers":3,"mean_commits":"21.333333333333332","dds":0.25,"last_synced_commit":"06c0327162dcef5e4437fdb63ac1a0d6ff30d139"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/tichise/FormSheetTextView","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tichise%2FFormSheetTextView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tichise%2FFormSheetTextView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tichise%2FFormSheetTextView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tichise%2FFormSheetTextView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tichise","download_url":"https://codeload.github.com/tichise/FormSheetTextView/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tichise%2FFormSheetTextView/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278486278,"owners_count":25994941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cocoapods","objective-c","objectivec","swift","swift3"],"created_at":"2024-09-30T16:50:03.543Z","updated_at":"2025-10-05T16:53:59.059Z","avatar_url":"https://github.com/tichise.png","language":"Swift","readme":"### FormSheetTextView ![CocoaPods Version](https://img.shields.io/cocoapods/v/FormSheetTextView.svg?style=flat) ![Platform](https://img.shields.io/cocoapods/p/PageSheetForm.svg?style=flat) ![License](https://img.shields.io/cocoapods/l/PageSheetForm.svg?style=flat)\n\nFormSheetTextView is a FormSheet style UITextView.\n\n### Image\n#### iPhone\n\u003cimg src=\"https://user-images.githubusercontent.com/43707/29513238-a43de8bc-869f-11e7-9964-27ba52d7b269.png\" width=\"400px\"\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/43707/29513260-b4fed45e-869f-11e7-9b0d-ca91b5de37be.png\" width=\"400px\"\u003e\n\n#### iPhone Plus\n\u003cimg src=\"https://user-images.githubusercontent.com/43707/29513384-24240fe8-86a0-11e7-991e-41b0490ac1ab.png\" width=\"400px\"\u003e\n\n\n#### iPad\n\u003cimg src=\"https://user-images.githubusercontent.com/43707/29513124-53bb23d2-869f-11e7-86e2-5d0b65264665.png\" width=\"400px\"\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/43707/29513152-653de73e-869f-11e7-9900-aeae8359e7cf.png\" width=\"400px\"\u003e\n\n\n### Examples\n\n#### Swift\n\n```html\nimport FormSheetTextView\n\n        let initialText = self.baseTextView?.text\n        \n        guard let formSheetTextViewController = FormSheetTextViewController.instantiate() else {\n            return\n        }\n\n        formSheetTextViewController.set(initialText: initialText)\n        formSheetTextViewController.set(titleText: \"Title\")\n        formSheetTextViewController.set(cancelButtonText: \"Cancel\")\n        formSheetTextViewController.set(isInitialPositionHead: false)\n        \n        // formSheetTextViewController.set(titleSize: 20) // default 15\n        // formSheetTextViewController.set(buttonSize: 20) // default 15\n\n        formSheetTextViewController.set(isPreview: true)\n        formSheetTextViewController.set(previewPageTitle: \"Preview\")\n        formSheetTextViewController.set(sendButtonText: \"Send\")\n        formSheetTextViewController.completionHandler = { sendText in\n            \n            if sendText.count \u003e 20 {\n                let alertController:UIAlertController = UIAlertController(title:nil, message: \"The number of characters exceeds the upper limit. Please enter within 20 characters.\", preferredStyle: UIAlertController.Style.alert)\n                let cancelAction:UIAlertAction = UIAlertAction(title: \"Close\", style: UIAlertAction.Style.cancel, handler:{ (action:UIAlertAction!) -\u003e Void in\n                })\n                alertController.addAction(cancelAction)\n                formSheetTextViewController.present(alertController, animated: true, completion: nil)\n                return\n            }\n            \n            if sendText.count == 0 {\n                let alertController:UIAlertController = UIAlertController(title:nil, message: \"It is not input. Please enter.\", preferredStyle: UIAlertController.Style.alert)\n                let cancelAction:UIAlertAction = UIAlertAction(title: \"Close\", style: UIAlertAction.Style.cancel, handler:{ (action:UIAlertAction!) -\u003e Void in\n                })\n                alertController.addAction(cancelAction)\n                formSheetTextViewController.present(alertController, animated: true, completion: nil)\n                return\n            }\n            \n            \n            // success\n            self.baseTextView?.text = sendText\n            \n            formSheetTextViewController.dismiss(animated: true, completion: nil)\n        };\n        \n        let navigationController = UINavigationController(rootViewController: formSheetTextViewController)\n        navigationController.modalPresentationStyle = UIModalPresentationStyle.formSheet\n        present(navigationController, animated: true, completion: nil)\n```\n\n#### ObjectiveC\n\n```\n@import FormSheetTextView;\n\n__weak FormSheetTextViewController *formSheetTextViewController = [FormSheetTextViewController instantiate];\n    [formSheetTextViewController setWithInitialText:@\"initial text\"];\n    [formSheetTextViewController setWithTitleText:@\"Title\"];\n    [formSheetTextViewController setWithCancelButtonText:@\"Cancel\"];\n    [formSheetTextViewController setWithSendButtonText:@\"Send\"];\n    [formSheetTextViewController setCompletionHandler:^(NSString *sendText) {\n        \n        if ([sendText length] \u003e 20) {\n            UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:@\"The number of characters exceeds the upper limit. Please enter within 20 characters.\" preferredStyle:UIAlertControllerStyleAlert];\n            UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@\"Cancel\" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {}];\n            [alertController addAction:cancelAction];\n            [formSheetTextViewController presentViewController:alertController animated:YES completion:nil];\n\n            return;\n        }\n        \n        if ([sendText length] == 0) {\n            UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:@\"It is not input. Please enter..\" preferredStyle:UIAlertControllerStyleAlert];\n            UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@\"Cancel\" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {}];\n            [alertController addAction:cancelAction];\n            [formSheetTextViewController presentViewController:alertController animated:YES completion:nil];\n            \n            return;\n        }\n        \n        [formSheetTextViewController dismissViewControllerAnimated:true completion:nil];\n    }];\n\n    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:formSheetTextViewController];\n    [navigationController setModalPresentationStyle:UIModalPresentationFormSheet];\n    [self presentViewController:navigationController animated:true completion:nil];\n```\n\n### Installation (CocoaPods)\n`pod FormSheetTextView`\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftichise%2Fformsheettextview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftichise%2Fformsheettextview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftichise%2Fformsheettextview/lists"}