Ios UIAlertView中的UITextField无法设置游标

Ios UIAlertView中的UITextField无法设置游标,ios,uitextfield,uialertview,Ios,Uitextfield,Uialertview,以下是我的代码: UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Confirm Address" message:@"Please confirm your address:" delegate:self cancelButtonTitle:@"Confirm" otherButtonTitles:nil]; alert.alertViewStyle = UIAlertViewStylePlainTextIn

以下是我的代码:

    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Confirm Address" message:@"Please confirm your address:" delegate:self cancelButtonTitle:@"Confirm" otherButtonTitles:nil];
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;
    UITextField * alertTextField = [alert textFieldAtIndex:0];
    alertTextField.text = @"1234 ABC Street";
    [alertTextField becomeFirstResponder];
    UITextPosition *beginning = [alertTextField beginningOfDocument];
    [alertTextField setSelectedTextRange: [alertTextField
                                   textRangeFromPosition:beginning
                                   toPosition:beginning]];

    [alert show];

光标未设置为文本字段的开头。我做错了什么?

在控制器上实现
UITextFieldDelegate
,并将
setSelectedTextRange
代码移动到
textFieldDidBeginEditing
代理回调:

UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Confirm Address" message:@"Please confirm your address:" delegate:self cancelButtonTitle:@"Confirm" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField * alertTextField = [alert textFieldAtIndex:0];
alertTextField.text = @"1234 ABC Street";
[alertTextField becomeFirstResponder];

// Your UITextFieldDelegate implementer here
[alertTextField setDelegate:self];

[alert show];

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    UITextPosition *beginning = [textField beginningOfDocument];
    [textField setSelectedTextRange:[textField textRangeFromPosition:beginning
                                                          toPosition:beginning]];
}

必须在头文件或类扩展名中指定实现
并如上所示设置委托。

在控制器上实现
UITextFieldDelegate
,并将
setSelectedTextRange
代码移动到
textfieldDiBeginediting
委托回调:

UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Confirm Address" message:@"Please confirm your address:" delegate:self cancelButtonTitle:@"Confirm" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField * alertTextField = [alert textFieldAtIndex:0];
alertTextField.text = @"1234 ABC Street";
[alertTextField becomeFirstResponder];

// Your UITextFieldDelegate implementer here
[alertTextField setDelegate:self];

[alert show];

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    UITextPosition *beginning = [textField beginningOfDocument];
    [textField setSelectedTextRange:[textField textRangeFromPosition:beginning
                                                          toPosition:beginning]];
}

必须在头文件或类扩展名中指定实现的
并如上所示设置委托。

将alertTextField的委托设置为当前视图控制器,并在textFields委托方法中执行设置范围

UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Confirm Address" message:@"Please confirm your address:" delegate:self cancelButtonTitle:@"Confirm" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField *alertTextField = [alert textFieldAtIndex:0];
alertTextField.text = @"1234 ABC Street";
alertTextField.delegate = self;
[alertTextField becomeFirstResponder];
[alert show];
文本字段委托

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    UITextPosition *beginning = [textField beginningOfDocument];
    [textField setSelectedTextRange:[textField
                                     textRangeFromPosition:beginning
                                     toPosition:beginning]];

将alertTextField的委托设置为当前视图控制器,并在textFields委托方法中执行范围设置

UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Confirm Address" message:@"Please confirm your address:" delegate:self cancelButtonTitle:@"Confirm" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField *alertTextField = [alert textFieldAtIndex:0];
alertTextField.text = @"1234 ABC Street";
alertTextField.delegate = self;
[alertTextField becomeFirstResponder];
[alert show];
文本字段委托

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    UITextPosition *beginning = [textField beginningOfDocument];
    [textField setSelectedTextRange:[textField
                                     textRangeFromPosition:beginning
                                     toPosition:beginning]];