2016-11-22 37 views
1

我有一個UITextField,當點擊需要顯示UIPickerView。此外,在pickerview中選擇的數據將被插入到文本框中。爲了達到目的,我現在使用subhajit的SHPickerFieldUItextfield與pickerview作爲firstresponder ios

+0

可以顯示烏爾TRID代碼 –

+0

歡迎StackOverflow上。請注意,這不是一個免費的代碼寫入服務,但我們渴望幫助其他程序員(和有志之士)編寫他們自己的代碼。請閱讀[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)上的幫助主題。之後,請用您迄今編寫的代碼更新您的問題,以完成您希望實現的任務。 –

+0

興奮地你想知道什麼? –

回答

2

我已經創建的UITextField的一個子類,很容易實施和使用。這裏是GitHub的鏈接:

訪問https://github.com/subhajitregor/SHPickerFieldExample

請看例子來看看如何使用。自述文件現在也被更新。

+0

無法運行項目 –

+0

如果您使用較低版本的Xcode而不是Xcode 8,請將您的目標更改爲iOS 9 –

+0

感謝您的工作 –

0

試試這個

let myPicker = UIPickerView() 
@IBOutlet var myText: UITextField! 

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 

    myText.inputView = myPicker 

} 


@IBAction func textPiker(_ sender: UITextField) { 

    sender.inputView = myPicker 
} 
0

藉助此代碼,您還可以打開多個文本字段。

.H

UIPickerView *monthPickerView; 

@property (strong, nonatomic)NSArray *monthArray; 

@property (retain, nonatomic) IBOutlet UITextField *monthTextField; 

.M

self.monthArray=[[NSArray alloc] initWithObjects:@"one",@"two", nil]; 

self.monthTextField.delegate=self; 

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    [self showPicker:textField]; 

else if(textField==_monthTextField){ 
    if(self.monthTextField.text.length>=1){ 
     [monthPickerView selectRow:[self.monthArray indexOfObject:self.monthTextField.text] inComponent:0 animated:NO]; 
    } 
} 

return YES; 
} 


//**************show picker************** 

- (IBAction)showPicker:(id)sender { 
UITextField *textField=(UITextField *)sender; 
monthPickerView = [[UIPickerView alloc] init]; 
monthPickerView.showsSelectionIndicator = YES; 
monthPickerView.dataSource = self; 
monthPickerView.delegate = self; 
pickerToolbar = [[UIToolbar alloc] init]; 
pickerToolbar.barStyle = UIBarStyleBlackTranslucent; 
[pickerToolbar sizeToFit]; 
//to make the done button aligned to the right 
UIBarButtonItem *flexibleSpaceLeft = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
                   style:UIBarButtonItemStyleDone target:self 
                   action:@selector(doneClicked:)]; 
[pickerToolbar setItems:[NSArray arrayWithObjects:flexibleSpaceLeft, doneButton, nil]]; 

if(textField==_monthTextField){ 
    monthPickerView.tag=; 
    self.monthTextField.inputView = monthPickerView; 
    self.monthTextField.inputAccessoryView = pickerToolbar; 
} 

}

-(void)doneClicked:(id) sender 
{ 
[self.view endEditing:YES]; 


} 
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 
{ 
    return 1; 
} 
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 

if(pickerView.tag==1){ 
    self.monthTextField.text = [_monthArray objectAtIndex:row]; 
} 


} 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; 
{ 

if(pickerView.tag==1){ 
    return [_monthArray count]; 
} 
return 0; 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; 
{ 

if(pickerView.tag==1){ 
    return [_monthArray objectAtIndex:row]; 
} 
return 0; 
} 
相關問題