选择UITextField时显示UIPickerView

时间:2010-04-14 00:02:08

标签: iphone uitextfield uipickerview

有人在选择UITextField时有一个显示UIPickerView的基本示例。

3 个答案:

答案 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)

http://tmblr.co/ZjkSZteCOUBS

我有完整的代码和我博客中列出的所有内容。但在下面,我已经提出了基本概念。

基本上,该解决方案涉及在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;
}

编辑我知道此问题是在不久前提出的,但我觉得有必要提供更新的解决方案。