Leg*_*las 4 cocoa-touch objective-c uipickerview uitoolbar ios
我只是尝试在解除UIPickerView导航栏上的按钮或选择器视图上方工具栏上的"完成"按钮时更好.我已经实现了两个按钮,我试图解除选择器视图并辞职第一响应者.
如何UIPickerView使用工具栏上的"完成"按钮关闭?
这是我的代码UIToolBar:
UIToolbar* keyboardDoneButtonView = [[UIToolbar alloc] init];
keyboardDoneButtonView.barStyle = UIBarStyleBlack;
keyboardDoneButtonView.translucent = YES;
keyboardDoneButtonView.tintColor = nil;
[keyboardDoneButtonView sizeToFit];
UIBarButtonItem* doneButton = [[[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleBordered target:self
action:@selector(pickerDoneClicked:)] autorelease];
[keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton, nil]];
textField.inputAccessoryView = keyboardDoneButtonView;
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?
jus*_*tin 22
虽然我确信我的测试应用程序比较简单,但我希望这个结构对您来说仍然有效.
从本质上讲,这就是我所做的一切.我有一个UIPickerView,UIDatePickerView并UITextField在IB中设立.pickerView dataSource和delegate都链接到File的Owner,就像delegatetextField一样.
在我的标题中,我使用以下结构声明它们
UISomething *object;
@property (nonatomic, retain) IBOutlet UISomething *object;
Run Code Online (Sandbox Code Playgroud)
我也有协议链接(<UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate>).在实现文件中,所有内容都是合成的.然后viewDidLoad,我有这个.
- (void)viewDidLoad
{
UIToolbar* keyboardDoneButtonView = [[UIToolbar alloc] init];
keyboardDoneButtonView.barStyle = UIBarStyleBlack;
keyboardDoneButtonView.translucent = YES;
keyboardDoneButtonView.tintColor = nil;
[keyboardDoneButtonView sizeToFit];
UIBarButtonItem* doneButton = [[[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleBordered target:self
action:@selector(pickerDoneClicked:)] autorelease];
[keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton, nil]];
textField.inputAccessoryView = keyboardDoneButtonView;
[datePicker removeFromSuperview];
[pickerView removeFromSuperview];
[super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)
当textField变为活动状态时,我会调用它
- (void)textFieldDidBeginEditing:(UITextField *)textField {
[self.view addSubview:pickerView];
[self.view addSubview:datePicker];
}
Run Code Online (Sandbox Code Playgroud)
最后,还有动作方法
- (IBAction)pickerDoneClicked:(id)sender {
[datePicker removeFromSuperview];
[pickerView removeFromSuperview];
[textField resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
这一切都适合我.一切都得到了显示和删除.所以运气好的话,这也可以帮到你