이 질문을하는 것이 좋지 않습니다. 나는 그걸 두 번이나 보았지만 대답을 이해하지 못하고있다. 별도의보기에서 만든 사용자 지정 키보드가 있습니다. 그것은 한 텍스트 상자에 큰 효과가있었습니다. 하지만 이제는 키보드에서 숫자를 입력 할 여러 텍스트 상자를 갖기를 원합니다. 텍스트 상자를 입력 할 때보기 컨트롤러를 텍스트 필드 대리자로 만들고 내 사용자 지정 키보드가 팝업됩니다. 그러나 숫자를 설정해야하는 코드는 텍스트 상자 중 하나에 대해서만 있습니다. 그래서 어떤 텍스트 상자가 선택되었는지 확인하여 해당 상자에서 편집 할 것인지 확인하고 싶었습니다.여러 텍스트 상자에 텍스트를 넣는 사용자 지정 키보드
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if ([numberOne isFirstResponder])
{
[self.numberOne = currentTextField];
}
else if ([numberTwo isFirstResponder])
{
[self.numberTwo = currentTextField];
}
}
currentTextField가의 UITextField입니다 ... (의 UITextField *) TextField 및 다음 코드를 시도 : (BOOL) textFieldShouldBeginEditing - 나는 방법을 사용했다. 다음 numberOne 바꾸려면 다음 코드에서 currentTextField를 대신 싶었습니다.
- (IBAction)buttonPressed:(UIButton *)sender
{
NSString *button = [sender currentTitle];
NSRange decimalpoint = [self.numberOne.text rangeOfString:@"."];
if (self.userIsEnteringANumber)
{
if ([button isEqualToString:@"."] && decimalpoint.location != NSNotFound)
{
self.numberOne.text = self.numberOne.text;
}else
self.numberOne.text = [self.numberOne.text stringByAppendingString:button];
}else
{
self.numberOne.text = button;
self.userIsEnteringANumber = YES;
}
}
그러나 컴파일러는 내 줄 [self.numberOne = currentTextField]을 좋아하지 않습니다. 다른 조언을 따르려고했지만 불행히도 그들이하는 말을 이해하지 못합니다. 누구든지 나를위한 초보자 지시가 있습니까? 미리 감사드립니다.
저는 넓은 곳에서 도움을 받아 컴파일러 문제를 해결했습니다. 감사. 내 textFieldShouldBeginEditing 방법은 ... 지금
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if ([numberOne isFirstResponder])
{
self.currentTextField = self.numberOne;
}
else if ([numberTwo isFirstResponder])
{
self.currentTextField = self.numberTwo;
}
return YES;
}
내가 다음에 IBAction를의 buttonPressed를 변경 ... 이상한
- (IBAction)buttonPressed:(UIButton *)sender
{
NSString *button = [sender currentTitle];
NSRange decimalpoint = [self.currentTextField.text rangeOfString:@"."];
if (self.userIsEnteringANumber)
{
if ([button isEqualToString:@"."] && decimalpoint.location != NSNotFound)
{
self.currentTextField.text = self.currentTextField.text;
}else
self.currentTextField.text = [self.currentTextField.text stringByAppendingString:button];
}else
{
self.currentTextField.text = button;
self.userIsEnteringANumber = YES;
}
}
그리고 지금 일이 발생합니다. 첫 번째 텍스트 필드를 클릭하면 키보드가 나타나지만 아무런 반응이없는 경우 두 번째 텍스트 필드를 누르고 첫 번째 텍스트 필드에서 편집이 시작됩니다. 첫 번째 텍스트 필드를 클릭하면 두 번째 텍스트 필드에서 편집이 시작됩니다. 어떤 도움을 주시면 감사하겠습니다 !!
감사합니다. 컴파일러는 더 행복했습니다! 그러나 그것은 내 문제를 해결하지 못했습니다. currentTextField로 numberOne을 변경했지만, 키보드는 숫자를 텍스트 상자에 넣지 않았습니다. 텍스트 필드를 입력하면 내 키보드가 여전히 호출되지만 어떤 다른 코드를보아야합니까? 바로 알려주세요. 다시 한번 감사합니다. – Douglas
currentTextField를 합성 한 경우 다음을 사용하십시오. self.currentTextField = self.numberOne; firstResponder를 변경할 때 self.userIsEnteringANumber를 NO로 재설정해야합니다 ... self.currentTextField.text = self.currentTextField를 생략 할 수 있습니다.본문; – spacious
예, currentTextField를 합성했습니다. 나는 당신의 모든 팁을 사용했다. 편집 해 주셔서 감사합니다. 그러나 반대 텍스트 필드 편집 문제가 여전히 발생합니다. 그 중 하나에 대한 모든 아이디어!? – Douglas