-1

我有多个文本字段。在其中一个中,我想显示一个 UIPickerView。我是这样做的:

-(void)showPicker{
    [subject becomeFirstResponder];
    actionSheet = [[UIActionSheet alloc] initWithTitle:nil 
                                                             delegate:nil
                                                    cancelButtonTitle:nil
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:nil];

    [actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];

    CGRect pickerFrame = CGRectMake(0, 40, 0, 0);

    picker = [[UIPickerView alloc] initWithFrame:pickerFrame];
    picker.showsSelectionIndicator = YES;
    picker.dataSource = self;
    picker.delegate = self;

    [actionSheet addSubview:picker];
    [picker release];

    UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems: [NSArray arrayWithObject:@"Close"]];
    closeButton.momentary = YES; 
    closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f);
    closeButton.segmentedControlStyle = UISegmentedControlStyleBar;
    closeButton.tintColor = [UIColor blackColor];
    [closeButton addTarget:self action:@selector(dismissActionSheet) forControlEvents:UIControlEventValueChanged];
    [actionSheet addSubview:closeButton];
    [closeButton release];

    [actionSheet showInView:[[UIApplication sharedApplication] keyWindow]];

    [actionSheet setBounds:CGRectMake(0, 0, 320, 485)];



}

-(void)dismissActionSheet{
    [actionSheet dismissWithClickedButtonIndex:0 animated:YES];
}

当我关闭它时,工作表被关闭,但subjecttextField 上的键盘出现。

现在:

我该怎么做才能不在该文本字段上显示键盘subject

这是我放弃键盘的地方:

- (void) resignKeyboard:(id)sender{

        if ([name isFirstResponder])
            [name resignFirstResponder];
        else if ([email isFirstResponder])
            [email resignFirstResponder];
        else if ([message isFirstResponder])
            [message resignFirstResponder];
        else if ([subject isFirstResponder]) {
            [subject resignFirstResponder];
        }

}
4

3 回答 3

0

可以防止键盘弹出。

首先将您的班级设置为 UIExfield 的代表

 textField.delegate = self

在您的接口声明中添加:

<UITextFieldDelegate> 

现在实现 textFieldShouldBeginEditing::

 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    // Show UIPickerView

    return NO;
}
于 2012-06-03T13:48:48.907 回答
0

使用 UItextField 代表:为此你需要添加 @interface YourViewController :UIViewController

如果 UItextField 通过右键单击从 xib 中获取,则将其委托添加到文件所有者

现在在代码中使用这个方法:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
   if(textField == subject)
   {
     return NO;
   }
   return YES;
}
于 2012-06-03T13:52:12.180 回答
0

通过使用处理显示选择器的操作的透明按钮来解决。“主题”文本字段被禁用。

于 2012-06-03T14:56:00.440 回答