0

ユーザーがテキストフィールドに日付のみを入力できるようにする方法はありますか? たとえば、文字 0 ~ 9 と / (またはより適切なソリューション)? もしそうなら、これを行う最善の方法は何ですか?

で失敗しました

NSString *LEGAL = @"0123456789/";

NSCharacterSet *characterSet = [[NSCharacterSet characterSetWithCharactersInString:LEGAL] 反転セット];

NSString *filteredOne = [[firstString componentsSeparatedByCharactersInSet:characterSet]

componentsJoinedByString:@""];

NSString *filteredTwo = [[secondString componentsSeparatedByCharactersInSet:characterSet]

componentsJoinedByString:@""];

firstString =filteredOne;

secondString =filteredTwo;

4

1 に答える 1

1

あなたの質問を正しく理解できれば、お役に立てるかもしれません。これは、テキストフィールドをフォーマットして日付を選択するために以前に使用した古いコードです。うまくいけば、あなたはそれを理解し、あなたのニーズに適応させることができます:

ノート:UITextField *endDate;

 //Get date and format it for the textfields
-(void)updateTextField:(id)sender
{
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-dd"];

    UIDatePicker *picker = (UIDatePicker*)self.endDate.inputView;
    NSString *theDate = [dateFormat stringFromDate:picker.date];

    self.endDate.text = [NSString stringWithFormat:@"%@",theDate];

    [dateFormat release];
}

キーボードの代わりに日付セレクターを使用するには、viewDidLoad() メソッドで次のようなことを試してください*

//Make date pickers instead of keyboards for time text boxes
UIDatePicker *datePicker = [[[UIDatePicker alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 162.0)] autorelease];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.maximumDate = [NSDate date];
NSDate *setDate = [NSDate dateWithYear: 2012 month: 02 day: 03];
[datePicker setDate:setDate];
[datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];       
[self.startDate setInputView:datePicker];

datePicker = [[[UIDatePicker alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 162.0)] autorelease];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.maximumDate = [NSDate date];
setDate = [NSDate dateWithYear: 2012 month: 02 day: 10];
[datePicker setDate:setDate];
[datePicker addTarget:self action:@selector(updateTextField2:) forControlEvents:UIControlEventValueChanged];       
[self.endDate setInputView:datePicker];

*注: 独自の NSDate インターフェイス/実装が必要な場合があります。その場合、コードは以下のとおりです。ファイルの先頭にインポートすることを忘れないでください!

NSDate.h

#import <Foundation/Foundation.h>

@interface NSDate (missingFunctions) 
+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day;
@end

NSDate.m

#import "NSDate.h"

@implementation NSDate (missingFunctions)

+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day {
    NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
    NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];
    [components setYear:year];
    [components setMonth:month];
    [components setDay:day];
    return [calendar dateFromComponents:components];
}   
@end
于 2013-02-11T08:31:19.353 に答える