有人在选择UITextField时有一个显示UIPickerView的基本示例。
答案 0 :(得分:2)
这样做的最佳位置是NSTextField Delegate方法:
- (BOOL)textShouldBeginEditing:(NSText *)textObject
重写方法以返回NO,而是唤起选择器视图。返回NO将阻止键盘出现。
答案 1 :(得分:2)
我做的是实现touchesEnded事件。如果该事件发生在我的UITextField参数中,那么我隐藏或显示UIPickerView
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
if (CGRectContainsPoint([self.textField frame], [touch locationInView:self.view]))
{
//Want to show or hide UIPickerView
if(pickerView)
{
submitButton.hidden = !submitButton.hidden;
pickerView.hidden = !pickerView.hidden;
}
}
}
答案 2 :(得分:0)
我有完整的代码和我博客中列出的所有内容。但在下面,我已经提出了基本概念。
基本上,该解决方案涉及在github上调用ActionSheetPicker的开源项目,并在textFieldShouldBeginEditing
上实现函数UITextFieldDelegate
。您可以在那里关闭键盘并提供UIPickerView。基本代码列在这里:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
// We are now showing the UIPickerViewer instead
// Close the keypad if it is showing
[self.superview endEditing:YES];
// Function to show the picker view
[self showPickerViewer :array :pickerTitle];
// Return no so that no cursor is shown in the text box
return NO;
}
编辑我知道此问题是在不久前提出的,但我觉得有必要提供更新的解决方案。