Tôi đã nhận mã dưới đây từ this SO câu hỏi. Tôi đang cố gắng để trượt lên các lĩnh vực văn bản khi tôi bắt đầu chỉnh sửa (bởi vì họ nếu không được bảo hiểm bởi bàn phím iPhone). Tuy nhiên, câu lệnh log cho thấy rằng phương thức textFieldDidBeginEditing không được gọi.textFieldDidBeginEditing: không nhận được gọi
Tôi có đoạn code dưới đây trong hai lớp con khác nhau của UIViewController. Trong một trong số họ, ví dụ, tôi có một textfield kết nối từ các kịch bản để các UIViewController như thế này
@property (strong, nonatomic) IBOutlet UITextField *mnemonicField;
tôi chuyển textfield lên đến đỉnh điểm (tức là không được bao phủ bởi bàn phím) vì vậy mà tôi có thể chỉnh sửa nó để cố kích hoạt báo cáo nhật ký nhưng nó không hoạt động. Các lĩnh vực văn bản khác làm việc như mong đợi nghĩa là liên kết dữ liệu tôi nhập là nhận được lưu vào CoreData vv vv
bạn có thể giải thích những gì tôi có thể làm sai?
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
NSLog(@"The did begin edit method was called");
[self animateTextField: textField up: YES];
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[self animateTextField: textField up: NO];
}
- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
const int movementDistance = 180; // tweak as needed
const float movementDuration = 0.3f; // tweak as needed
int movement = (up ? -movementDistance : movementDistance);
[UIView beginAnimations: @"anim" context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
self.view.frame = CGRectOffset(self.view.frame, 0, movement);
[UIView commitAnimations];
}
Có bất kỳ phương pháp đại biểu nào khác được gọi hoặc khi nào đã làm bạn thiết lập các đại biểu? – Larme
@larme Tôi phải thiết lập một đại biểu cho việc này để làm việc? không biết rằng – Leahcim
'textFieldDidEndEditing': là phương thức ủy nhiệm. Đó là một phương thức 'UITextFieldDelegate', không phải là' UITextField'. – Larme