我看过其他的例子,并尝试过
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string我不确定我做错了什么,我刚刚开始编写我的第一个Iphone应用程序
这就是我正在尝试做的事情
我有4个文本字段,每个字段在输入时都有字母数限制,我使用下面的代码完成了这项工作
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
int valid;
NSString *cs2 = [textField.text stringByReplacingCharactersInRange:range withString:string];
// int charCount = [cs2 length];
if(textField == cvv){
valid = 4;
}else if(textField == cardName) {
valid=26;
}else if(textField == expDate) {
valid=5;
// if (charCount == 2 ) {
// textField.text = [cs2 stringByAppendingString:@"/"];
// textField.text = cs2;
// return YES;
// }
}else if(textField == acNumber) {
valid=19;
}
return !([cs2 length] > valid);在这里,我有一个文本字段,用户在其中输入Exp date,并想格式化它,就像我输入112,它应该显示为01/12,如果我输入2,它应该显示为1122
我尝试检查文本字段值的长度是否为2,然后追加一个/,但当我输入12时,结果是11/22
发布于 2012-06-26 23:54:53
就像Nuzhat建议的那样,datepicker可能是一个好主意。这里有一些你可以用来做popover datepicker的代码。基本上,创建一个视图控制器,它是DateController (下面的代码)的子类,并将其弹出到文本字段上。然后,在视图控制器中实现委托方法来更新文本字段。
//DateController.h
#import <UIKit/UIKit.h>
@protocol DateControllerDelegate
- (void) upDate:(NSDate*) date;
@end
@interface DateController : UIViewController <UIPickerViewDelegate>
- (IBAction)datePicker:(id)sender;
@property (weak, nonatomic) IBOutlet UIDatePicker *dateWheel;
@property (unsafe_unretained, nonatomic) id<DateControllerDelegate> delegate;
@end
//DateController.m
#import "DateController.h"
@implementation DateController
@synthesize dateWheel;
@synthesize delegate;
- (IBAction)datePicker:(id)sender
{
[delegate upDate:dateWheel.date];
}
@end
//Add this to your ViewController.h
#import "DateController.h"
//This line should look like this
@interface ViewController:UIViewController <DateControllerDelegate>
//Add this to your ViewController.m
- (void) upDate:(NSDate*) date
{
textField.text = [[date description] substringToIndex:10];
}
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"dateSegue"])
{
DateController *foo = segue.destinationViewController;
foo.delegate = self;
}
}然后,您所要做的就是挂接segue,并在storyboard中将其命名为dateSegue。
https://stackoverflow.com/questions/11210316
复制相似问题