この質問をするのは気分が悪い。SOで数回見たことがありますが、答えがわかりません。別のビューで作成したカスタムキーボードがあります。1つのテキストボックスに最適です。しかし、キーボードが数字を入力する複数のテキストボックスが必要です。ViewControllerをテキストフィールドデリゲートにしたので、いずれかのテキストボックスに入力すると、カスタムキーボードがポップアップします。ただし、番号を設定する必要があるコードは、テキストボックスの1つのみです。そこで、どのテキストボックスが選択されているかを確認したかったので、そのボックスで編集します。メソッド-(BOOL)textFieldShouldBeginEditing:(UITextField *)textFieldを使用して、次のコードを試しました...
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if ([numberOne isFirstResponder])
{
[self.numberOne = currentTextField];
}
else if ([numberTwo isFirstResponder])
{
[self.numberTwo = currentTextField];
}
}
currentTextFieldはUItextFieldです。次に、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;
}
そして、IBActionbuttonPressedを次のように変更しました...
- (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;
}
}
そして今、何か奇妙なことが起こります。最初のテキストフィールドをクリックすると、キーボードが表示されますが何も起こりません。次に、2番目のテキストフィールドを押すと、最初のテキストフィールドで編集が開始されます。最初のテキストフィールドをクリックすると、2番目のテキストフィールドから編集が始まります。どんな助けでもいただければ幸いです!!