안녕 가능한 경우 사용자가 동적으로 하이픈 문자열의 모든 5 문자를 추가 할 숫자의 문자열을 입력대로 그냥 궁금으로 하이픈을동적으로 ... 내 문자열
어떤 추가 stringWithFormat을 사용하는 방법 도와 주시면 대단히 감사하겠습니다.
안녕 가능한 경우 사용자가 동적으로 하이픈 문자열의 모든 5 문자를 추가 할 숫자의 문자열을 입력대로 그냥 궁금으로 하이픈을동적으로 ... 내 문자열
어떤 추가 stringWithFormat을 사용하는 방법 도와 주시면 대단히 감사하겠습니다.
이 코드를 사용해보십시오.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *separator = @"-";
int seperatorInterval = 5;
NSString *originalString = [textField.text stringByReplacingOccurrencesOfString:separator withString:@""];
if (![originalString isEqualToString:@""] && ![string isEqualToString:@""]) {
NSString *lastChar = [textField.text substringFromIndex:[textField.text length] - 1];
int modulus = [originalString length] % seperatorInterval;
if (![lastChar isEqualToString:separator] && modulus == 0) {
textField.text = [textField.text stringByAppendingString:separator];
}
}
return YES;
}
그냥 2 개의 문자열을 선언하고 할당하십시오. 숫자를 하나의 문자열 (str 1)에 저장하고 모든 항목의 문자열 길이를 계산하십시오. 문자열 아이폰에 네 자리
str2 = [str1 appendByString:@"`"];
지금
str1 = str2;
다시 4 자리의 증가와 함께 루프에서이 과정을 반복 수행 할 때 확인합니다.
희망이 도움이 될 것입니다.
hrmm substrings.use의 배열을 만들 필요가 사용자가 입력 할 때 텍스트 필드에 입력합니다. 다섯 번째 문자 다음에 하이픈을 표시하고 숫자 시퀀스를 입력하는 사용자와 대화하지 않으려합니다. – tinhead
마지막 문자열이 올 때 도움이됩니다. 그 시간에 사용자가 입력 한 숫자가 표시되지 않을 것이라고 생각하지 마십시오. –
입력에 UITextField을 사용한다고 가정하면 UITextFieldTextDidChangeNotification
작업을 사용하여 텍스트가 수정 될 때마다 응답 할 수 있습니다. 빠르고 예 :
- (IBAction)textChanged:(UITextField*)sender
{
NSString* curText = sender.text;
//when checking the length, you need to exclude hyphens from the count
//which is currently not being done (thanks @titaniumdecoy)
if([curText length] % 5 == 0)
{
sender.text = [curText stringByAppendingString:@"-"];
}
}
이렇게하면 마지막으로 삽입 한 하이픈을지나 백 스페이스를 통해 삭제할 수 없습니다. – titaniumdecoy
또한 하이픈 자체가 문자열의 길이에 기여한다는 사실을 고려하지 않았습니다. – titaniumdecoy
죄송합니다. 여기에 늦었고 어떤 이유로 UILabel 구현 문제라고 생각했습니다. 나는 그 생각을하기 위해 주석을 추가 할 것이다. (여분의 코드는 대답 범위를 벗어날 것이기 때문에). 그것을 지적 주셔서 감사합니다. –
개념은 각 5 문자의 부분 문자열을 만들고 다음에 하이픈을 추가하여 각 문자를 연결합니다. 이 당신이 예 할 때 말 ....는하지만이 동적으로 사용자 유형으로 하이픈을 추가 할 경우 잘 모르겠어요,이 논리 기능
-(NSString *)makeMyString:(NSString *)stringA
{
NSMutableArray *tempArray1=[NSMutableArray array];
//NSString *[email protected]"12345123451234512";
NSString *s=stringA;
BOOL flag=YES;
while(flag)
{
NSString *str;
if([s length]>=5)
str=[s substringWithRange:NSMakeRange(0,5)];
else
str=s;
[tempArray1 addObject:str];
str=nil;
if([s length]>=5)
s=[s substringWithRange:NSMakeRange(5,([s length]-5))];
else
[email protected]"";
if([s isEqualToString:@""])
flag=NO;
}
NSString *[email protected]"";
for(int i=0;i<[tempArray1 count];i++)
{
if([[tempArray1 objectAtIndex:i] length]==5)
makeString =[NSString stringWithFormat:@"%@%@`",makeString,[tempArray1 objectAtIndex:i]];
else {
makeString =[NSString stringWithFormat:@"%@%@",makeString,[tempArray1 objectAtIndex:i]];
}
}
NSLog(@"%@",makeString);
return makeString;
}
메서드는 문자열에 대한 포인터 대신 실제 문자열을 반환 할 수 없으므로 해당 메서드의 머리글은 다음과 같습니다. - (NSString *) makeMyString : (NSString *) stringA 그러나 문제가 있습니다. 이 방법을 내 텍스트 필드에 전달하십시오. – tinhead
내가 정말로 할 수 있기를 원하는 것은 사용자가 텍스트 필드에 타이핑 할 때 하이픈이 사용자가 입력 할 때 팝업된다는 것이다. 나는 이것을 어떻게하는지 모른다. – tinhead
이제이 코드는 괜찮 으면서 하이픈으로 문자열을 반환합니다. textview delegate 메소드에서이 메소드를 호출하면 각 키를 누른 후에 textfeild의 텍스트를 전달할 수 있습니다. 델리게이트 - (BOOL) textField : (UITextField *) textField shouldChangeCharactersInRange : (NSRange) range replacementString : (NSString *) string – Ishu
몇 가지 오류가 발생하는 지금이 작업을 구현하는 중입니다. 단지 멍청하기 때문입니다. P – tinhead
이 코드를 내 regTextField에 어떻게 연결합니까? 또한이 메서드의 헤더에 선언해야 할 내용이 확실하지 않습니다. – tinhead
남자 ... 내가 아는 모든 것을 시도했는데 작동하지 못한다. – tinhead