UIToolbar上面的自定义UIPickerView没有接收到触摸

时间:2012-03-21 06:14:17

标签: iphone ios ipad uipickerview subclass

我已经 UIPickerView 继承了一些功能(我99%肯定它与这个问题无关)。在 drawRect 中,我添加了一个工具栏,以便更轻松地解雇工具栏,问题是,工具栏内的UIToolbar或UIBarButtonItem都没有接收到触摸。这几乎就像视图是“不可见的”,因为触摸被转发到它后面的视图(UITableView)。我知道我可以创建一个“控制”视图,将选择器和工具栏都保存在一起。但我只是想知道在没有创建另一个视图的情况下是否有任何方法可以做到这一点?

这是我的drawRect代码:

- (void)drawRect:(CGRect)rect
{

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

        pickerToolbar = [[UIToolbar alloc] initWithFrame: CGRectMake(0, 0, self.frame.size.width,  40)];


        UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemDone target: self.delegate action: closeAction];

        [pickerToolbar setItems: [NSArray arrayWithObject: closeButton]];

        [self addSubview: pickerToolbar];
    }
}

这是一张照片:

My custom UIPicker

1 个答案:

答案 0 :(得分:1)

从不,永远不要这样做。每次绘制选择器时,您都要添加新的子视图!

如果您的选择器视图是文本字段的输入视图,只需创建一个工具栏并将其添加为输入附件视图。它会出现在选择器上方。这是实现此行为的标准方法。