![](/img/trans.png)
[英]iPhone keyboard wont show up after adding uitextfield.inputView
[英]UITextField.inputView suddenly not popping up UIPickerView after working for days
我正在開發我的第一個應用程序(頗有學習經驗)。 今天,在學習,閱讀和嘗試/錯誤之后,我能夠以編程方式創建和填充UIPickerView,並在選擇適當的UITextField時將其彈出。
我的主ViewController
已經設置了UITableView
並填充了一些JSON數據。 我在UITableView
上方添加了一個子視圖(以下稱為FilterView
),我想容納一些控件來過濾我的UITableView
(我不確定該子視圖不是問題的一部分)。 在用代碼創建UIPickerView
(不使用Storyboard)並填充一些數據,並在子視圖中使用適當的.inputView設置UITextField
(觸發UIPickerView
出現)后,我便可以按照我想要的方式進行所有工作即將設置過濾我的UITableView的先例。
這是我在情節提要中帶有文本字段的視圖布局:
您會注意到我有我的主視圖(稱為View
),一個包含所有控件的子視圖(稱為FilterView
)以及所有這些下面的UITableView
。 然后,我在viewDidLoad
創建了三個選擇器UIPickerViews
,設置了DataSource和Delegate,並將inputView設置為所需的文本字段:
_voltagePickerView = [[UIPickerView alloc] initWithFrame:CGRectZero];
[_voltagePickerView setDataSource: self];
[_voltagePickerView setDelegate: self];
_voltagePickerView.showsSelectionIndicator = YES;
_voltageFilterField.inputView = _voltagePickerView;
//same for other 3
當然,UIPickerView屬性和UITextField
的Outlets都在我的ViewController.h
文件中:
@property (strong, nonatomic) UIPickerView *rpmPickerView;
@property (strong, nonatomic) UIPickerView *voltagePickerView;
@property (strong, nonatomic) UIPickerView *noiseLevelPickerView;
@property (strong, nonatomic) IBOutlet UITextField *voltageFilterField;
@property (strong, nonatomic) IBOutlet UITextField *rpmFilterField;
@property (strong, nonatomic) IBOutlet UITextField *noiseLevelFilterField;
還設置了PickerView的所有方法:
// PickerViews //
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if ([pickerView isEqual: _voltagePickerView]) {
return voltagePickerValues.count;
}
else if () {
//Rest of PickerView rows
}
else {
return 0;
}
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
NSString *title;
if ([pickerView isEqual: _voltagePickerView]) {
title = [voltagePickerValues objectAtIndex:row];
}
else if {
//Rest of Picker Views
}
else {
title = nil;
}
return title;
}
所有這些都可以正常工作! 我將運行該項目,將填充TableView,然后單擊適當的TextField,以顯示具有正確數據的適當PickerView。
然后...我唯一能改變的(我能想到的)就是更改我的UITextFields的PlaceHolderText屬性...就是這樣,我可能還排好了TextField的外觀。 然后,我運行了該項目,當我單擊TextField時,選擇器將不會顯示。 我檢查了Outlet的TextViews和PickerFields,都一樣。 我什至刪除了TextViews的參考插座,然后重新創建了它們。 沒有。
老實說,我不知道發生了什么事。 除了UITextFields
之一的PlaceHolderText屬性外,其他所有操作都與以前完全相同。
我已經清理並重建了項目,重新啟動了xcode,甚至重新啟動了mac,但是什么也沒有。
我想念什么? 抱歉,冗長的帖子,如果您到目前為止做的很感謝。
我用偽標題運行了您的代碼,它對我有用。
我添加的一件事是您的代碼摘錄中缺少的一件事是:
[self.view addSubview:_voltagePickerView];
self是視圖控制器。
我沒有刪除我想回答的內容,希望對其他人有幫助。
我必須在模擬器中更改硬件設置。 我不知道為什么,但是模擬器似乎有問題。
取消選中Hardware => Keyboard => Connect Hardware Keyboard
模擬器中的Hardware => Keyboard => Connect Hardware Keyboard
可解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.