【发布时间】:2011-05-14 14:36:24
【问题描述】:
我在这里制作了一个 UITextField:
text_field = [[UITextField alloc] initWithFrame:CGRectMake(10, 8, 260, 40)];
text_field.delegate = [[MessageInputDelegate alloc] init];
委托实现:
@implementation MessageInputDelegate
- (BOOL) textFieldShouldReturn: (UITextField *) text_field{
[the_view5 becomeFirstResponder];
the_view5->text_area.frame = CGRectMake(20, 320, 280, 40);
the_view5->message_label.frame = CGRectMake(0, 0, 320, 320);
text_field.enabled = NO;
text_field.text = @"";
return YES;
}
- (void) textFieldDidBeginEditing: (UITextField *) textField{
printf("DID CALL EDIT METHOD\n");
the_view5->text_area.frame = CGRectMake(20, 140, 280, 40);
the_view5->message_label.frame = CGRectMake(0, 0, 320, 140);
}
- (BOOL) textField: (UITextField *) textField shouldChangeCharactersInRange: (NSRange) range replacementString: (NSString *) string{
if (textField.text.length >= 400 && range.length == 0){
return NO;
}
return YES;
}
@end
第一次激活文本字段时它有效,但第二次无效...?
谢谢。
【问题讨论】:
-
您是否在您的
MessageInputDelegate中创建text_field? -
不,你看到的代码就是它的代码。
-
text_field.enabled = NO看起来像个嫌疑人。 -
是的,就是这样。我之前在以编程方式激活文本字段时使用过它,当我允许手动输入时我感到困惑。
标签: objective-c ios uikit uitextfield uitextfielddelegate