MyUIButton
は、編集が完了するたびに消えるように設定されています。メソッドUITextField
を呼び出しtextFieldDidEndEditing:
て、ボタンをフェードアウトさせるだけです。最初のテキストフィールドをクリックせずに別のテキストフィールドに切り替えない限り、これはうまく機能します。たとえば、テキストフィールド A にいて、テキストフィールド B をタップすると、キーボードは起動したままになり、ボタンも起動したままになります。すべてのテキストフィールドの編集が完了した場合にのみ、このようなテキストフィールドの切り替えをカバーする方法があるとは思いません。私が間違っている?これが私のコードです:
-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField
{
negButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
negButton.frame = CGRectMake(textField.frame.origin.x, textField.frame.origin.y, 37, textField.frame.size.height);
[negButton setAlpha:0];
return YES;
}
-(void) textFieldDidBeginEditing:(UITextField *)textField
{
if ([textField isEditing])
{
[UIView animateWithDuration:0.3 animations:^
{
field = textField;
CGRect frame = textField.frame;
frame.size.width -= 40;
frame.origin.x += 40;
[negButton setAlpha:1];
[textField setFrame:frame];
[self.view addSubview:negButton];
}];
}
}
-(void) textFieldDidEndEditing:(UITextField *)textField
{
[UIView animateWithDuration:0.3 animations:^
{
CGRect frame = textField.frame;
frame.size.width += 40;
frame.origin.x -= 40;
[negButton setAlpha:0];
[textField setFrame:frame];
}
];
}