问这个问题我感觉不好。我在 SO 上看过几次,但我不明白答案。我有一个在单独视图中制作的自定义键盘。它适用于一个文本框。但是现在我想要多个文本框,键盘将在其中输入数字。我已将视图控制器设置为文本字段委托,并且当您输入任一文本框时,我的自定义键盘会弹出。但是,我必须设置数字的代码仅适用于其中一个文本框。所以我想检查一下选择了哪个文本框,所以我将在那个框中进行编辑。我使用了方法 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 并尝试了以下代码...
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if ([numberOne isFirstResponder])
{
[self.numberOne = currentTextField];
}
else if ([numberTwo isFirstResponder])
{
[self.numberTwo = currentTextField];
}
}
currentTextField 是一个 UItextField。然后我想在下面的代码中替换 currentTextField 来替换 numberOne。
- (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;
}
}
现在发生了一些奇怪的事情。当我单击第一个文本字段时,键盘出现但没有任何反应,然后我点击第二个文本字段并在第一个文本字段中开始编辑。如果我单击第一个文本字段,编辑将从第二个开始。任何帮助,将不胜感激!!