30 lines
815 B
Dart
30 lines
815 B
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter/services.dart';
|
|
|
|
class CardMonthInputFormatter extends TextInputFormatter {
|
|
@override
|
|
TextEditingValue formatEditUpdate(
|
|
TextEditingValue oldValue, TextEditingValue newValue) {
|
|
var masaController = newValue.text;
|
|
if (newValue.selection.baseOffset == 0) {
|
|
return newValue;
|
|
}
|
|
|
|
var buffer = new StringBuffer();
|
|
|
|
for (int i = 0; i < masaController.length; i++) {
|
|
buffer.write(masaController[i]);
|
|
var nonZeroIndex = i + 1;
|
|
|
|
if (nonZeroIndex % 2 == 0 && nonZeroIndex != masaController.length) {
|
|
buffer.write('/');
|
|
}
|
|
}
|
|
|
|
var string = buffer.toString();
|
|
return newValue.copyWith(
|
|
text: string,
|
|
selection: new TextSelection.collapsed(offset: string.length));
|
|
}
|
|
}
|