2012-03-21 50 views
0

我已经子类UIPickerView添加一些更多的功能(我99%肯定它与这个问题无关)。在drawRect我添加了一个工具栏,使工具栏更容易一些,问题是,工具栏中的UIToolbar或UIBarButtonItem都不会触及。就好像这个视图是“不可见的”,因为触摸被转发到它后面的视图(一个UITableView)。我知道我可以制作一个“控制”视图,将选取器和工具栏都包含在内。但我只是想知道是否有任何方法可以做到这一点,而不会产生另一种观点?UIToolbar上面的自定义UIPickerView没有收到触摸

这里是我的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

现在我想到了,你绝对是这样,真的很愚蠢哈哈。但输入附件视图是只读的,所以我猜我只是重新定义了属性。我会试试看,谢谢! – pob21 2012-03-21 23:05:29

+0

这实际上并没有给我我期待的结果,但非常感谢您的帮助! – pob21 2012-03-22 02:23:06

+1

输入配件视图不是只读的。也许我不清楚。您有一个正在使用选取器编辑内容的文本字段。此文本字段有两个属性 - 输入视图(您的标准UIPickerView视图)和输入附件视图(您的工具栏)。设置这些,系统将它们放在一起给你。你为什么继承这个选择器? – jrturton 2012-03-22 06:35:48