Iphone 选择UITextField时显示UIPickerView

Iphone 选择UITextField时显示UIPickerView,iphone,uitextfield,uipickerview,Iphone,Uitextfield,Uipickerview,是否有人在选择UITextField时有显示UIPickerView的基本示例。这样做的最佳位置是在NSTextField委托方法中: -(BOOL)text应该开始编辑:(NSText*)textObject 重写该方法以返回“否”,而是调用选择器视图。返回“否”将阻止键盘出现 执行此操作的最佳位置是在NSTextField委托方法中: -(BOOL)text应该开始编辑:(NSText*)textObject 重写该方法以返回“否”,而是调用选择器视图。返回“否”将阻止键盘出现 我所做的是实

是否有人在选择UITextField时有显示UIPickerView的基本示例。

这样做的最佳位置是在NSTextField委托方法中:

-(BOOL)text应该开始编辑:(NSText*)textObject


重写该方法以返回“否”,而是调用选择器视图。返回“否”将阻止键盘出现

执行此操作的最佳位置是在NSTextField委托方法中:

-(BOOL)text应该开始编辑:(NSText*)textObject


重写该方法以返回“否”,而是调用选择器视图。返回“否”将阻止键盘出现

我所做的是实施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;
        }
    }
}

我所做的是实施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;
        }
    }
}

我在我的博客里有代码和所有的东西来做到这一点。但在下文中,我列出了基本概念

基本上,该解决方案涉及github上一个名为ActionSheetPicker的开源项目,并在
UITextFieldDelegate
上实现函数
textfield应该开始编辑。您可以在那里关闭键盘并提供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;
}
编辑我知道这个问题是不久前提出的,但觉得有必要提供一个更新的解决方案。

我在我的博客里有代码和所有的东西来做到这一点。但在下文中,我列出了基本概念

基本上,该解决方案涉及github上一个名为ActionSheetPicker的开源项目,并在
UITextFieldDelegate
上实现函数
textfield应该开始编辑。您可以在那里关闭键盘并提供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;
}

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

我认为应该是:-(BOOL)textfield应该开始编辑:(UITextField*)textfield你是对的。我得到了错误的API。我想这应该是:-(BOOL)textfield应该开始编辑:(UITextField*)textfield你是对的。我得到了错误的API。在您评论时正在更新答案:)在您评论时正在更新答案:)