Jon*_*Fir 5 xcode objective-c ios swift
我正在寻找一种方法来实现UITextField的输入掩码,如下所示: 
主要特点:
我能够使用 UITextField 子类来完成所有这些工作。您可能想要将这些委托方法移至 ViewController 中并在那里设置自定义 TextField 委托。就本示例而言,在一堂课中向您展示所有内容会更容易。显然,您将不得不调整这些字符集以满足您的需求。
#import "TextField.h"
@interface TextField()<UITextFieldDelegate>
@end
@implementation TextField
-(instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.delegate = self;
}
return self;
}
- (UITextPosition *)closestPositionToPoint:(CGPoint)point{
UITextPosition *beginning = self.beginningOfDocument;
UITextPosition *end = [self positionFromPosition:beginning offset:self.text.length];
return end;
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(paste:)
|| action == @selector(select:)
|| action == @selector(selectAll:)
|| action == @selector(cut:)){
return NO;
}
return [super canPerformAction:action withSender:sender];
}
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (range.location == 0 && [string rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]].location == NSNotFound) {
return NO;
}else if (range.location == 1 && [string rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]].location == NSNotFound){
return NO;
}
return YES;
}
@end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2346 次 |
| 最近记录: |