0

我正在尝试实现自定义 AlertView。

这个想法是让 alertview 带有文本字段和取消按钮。

我不能做的是实时检查文本字段中输入的字符。我知道我可以使用它,– alertViewShouldEnableFirstOtherButton:但我不想要另一个按钮。我希望在没有按钮的情况下做同样的事情。

在 android 中,您可以将侦听器添加到文本字段 onchange。

尝试使用此 uitextfield 函数来执行此操作,但它没有被实时调用,或者我可能以错误的方式使用它。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    textField = [alert textFieldAtIndex:0];
    if ([textField.text length] == 0)
    {
        NSLog(@"Hello");
        return NO;
    }
    return NO;
}

那么如何正确地做到这一点呢?

4

2 回答 2

2

试试这个

    UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"New List Item", @"new_list_dialog")
                                                          message:@"this gets covered" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
   UITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
    myTextField.delegate = self;
    [myTextField setBackgroundColor:[UIColor whiteColor]];
    [myAlertView addSubview:myTextField];
    [myAlertView show];
    [myAlertView release];

和文本字段方法

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    NSLog(@" %@", [textField.text stringByReplacingCharactersInRange:range withString:string]);
    return YES;
}
于 2012-11-07T11:55:50.257 回答
1

您可以添加观察者,UITextFieldTextDidChangeNotification只要text changestextfield.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(controlTextDidChange:)
   name:UITextFieldTextDidChangeNotification object:[alert textField]];

选择器如下:

- (void)controlTextDidChange:(NSNotification *)notification {
{
    if ([notification object] == [alert textField]) 
    {
      // [alert textField] has changed
    }
}

编辑:做的remove Observer时候finish

[[NSNotificationCenter defaultCenter] removeObserver:UITextFieldTextDidChangeNotification];
于 2012-11-07T11:48:46.287 回答