# shsphonecomponent
**Repository Path**: mirrors/shsphonecomponent
## Basic Information
- **Project Name**: shsphonecomponent
- **Description**: SHSPhoneComponent 是 UITextField 和 NSFormatter 的子类,用于格式化显示电话号码,支持不同国家的不同格式
- **Primary Language**: Objective-C
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://www.oschina.net/p/shsphonecomponent
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2020-12-03
- **Last Updated**: 2026-01-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
SHSPhoneComponent
=================
UITextField and NSFormatter subclasses for formatting phone numbers. Allow different formats for different countries(patterns).
Caret positioning works excellent.
Swift version is here - https://github.com/Serheo/PhoneNumberFormatter
## How To Install
Use any of next methods:
- use embedded framework /SHSPhoneComponents/SHSPhoneComponent.xcodeproj (iOS 8+)
- pod 'SHSPhoneComponent'
- copy /SHSPhoneComponents/Library folder to your project.
And import "SHSPhoneLibrary.h" on your Controller.
## Example Usage
If you need complete example please see 'Example_iOS7+' or 'Example_iOS8+embedded' folders.
### Default Format
``` objective-c
[self.phoneField.formatter setDefaultOutputPattern:@"+# (###) ###-##-##"];
```
All input strings will be parsed in that way.
Example: +7 (920) 123-45-67
### Prefix Format
You can set prefix on all inputs:
``` objective-c
[self.phoneField.formatter setDefaultOutputPattern:@"(###) ###-##-##"];
self.phoneField.formatter.prefix = @"+7 ";
```
### Multiple Formats
``` objective-c
[self.phoneField.formatter setDefaultOutputPattern:@"##########" imagePath:nil];
[self.phoneField.formatter addOutputPattern:@"+# (###) ###-##-##" forRegExp:@"^7[0-689]\\d*$" imagePath:@"flagRU"];
[self.phoneField.formatter addOutputPattern:@"+### (##) ###-###" forRegExp:@"^374\\d*$" imagePath:@"flagAM"];
```
### Multiple Formats with prefix
``` objective-c
[self.phoneField.formatter setDefaultOutputPattern:@"### ### ###"];
self.phoneField.formatter.prefix = @"+7 ";
[self.phoneField.formatter addOutputPattern:@"(###) ###-##-##" forRegExp:@"^1\\d*$" imagePath:@"SHSPhoneImage.bundle/flag_ru"];
[self.phoneField.formatter addOutputPattern:@"(###) ###-###" forRegExp:@"^2\\d*$" imagePath:@"SHSPhoneImage.bundle/flag_ua"];
```
### Specific Formats
If you want to format some numbers in specific way just do
``` objective-c
[self.phoneField.formatter addOutputPattern:@"+# (###) ###-##-##" forRegExp:@"^7[0-689]\\d*$" imagePath:@"flagRU"];
[self.phoneField.formatter addOutputPattern:@"+### (##) ###-###" forRegExp:@"^374\\d*$" imagePath:@"flagAM"];
```
## Formatting
If you need only formatting function you can use SHSPhoneNumberFormatter class.
For additional class info see http://serheo.github.io/SHSPhoneComponent/
## Issues and Solutions
if you are using any predictions/suggestion in the textfield, set hasPredictiveInput flag to YES.
## Requirements
ARC Enabled.
iOS 7+
## License
SHSPhoneComponent is available under the MIT license. See the LICENSE file for more info.