UIPickerView不会隐藏在didSelectRow上

时间:2014-03-19 19:18:09

标签: ios iphone objective-c uipickerview

我是Objective-C和iOS的新手。

我需要一个UITextField作为UIPickerView,这个工作正常,但是当我从UIPickerView中选择一个项目时,它没有隐藏,我试着设置

[self.pickerLocales removeFromSuperview];

[self.pickerLocales setHidden=YES];
[self.pickerLocales.hidden=YES];

但是只隐藏了UIPickerView的内容,UIPickerView的“框架”仍然可见。

抱歉,我尝试上传图片,但我没有足够的声誉来上传图片。

在我的.h文件中:

@interface UserPanelViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate, UITextFieldDelegate> {
        UIPickerView *pickerLocales;
    }

在我的.m文件中:

@synthesize pickerLocales;
In viewDidLoad:
pickerLocales.dataSource = self;
pickerLocales.delegate = self;
self.txtLocal.inputView = pickerLocales;

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码以编程方式显示UITextField的键盘:

[self.txtLocal becomeFirstResponder];

您可以使用以下代码以编程方式隐藏UITextField的键盘:

[self.txtLocal resignFirstResponder];

在你的情况下而不是键盘你使用UIPickerView。

调用

[self.txtLocal resignFirstResponder];

在UIPickerView委托方法中( - pickerView:didSelectRow:inComponent: )。

答案 1 :(得分:0)

您的UIPickerView不是IBOutlet。因此,在使用InterfaceBuilder / Storyboard Editor的情况下,您无法将其连接到实际的选择器对象。

如果您以编程方式创建它,请说明如何。

仔细检查你的self.piclerLocales是否为nil,因为你可以发送一个nil对象的消息(调用方法)而没有任何运行时错误。因此你可以打电话给安装人员,但他们没有任何效果。