UIToolBar选择了按钮状态

时间:2011-03-18 14:35:54

标签: iphone objective-c xcode ios uitoolbar

我有一个UItableView,底部有一个工具栏。工具栏上有两个按钮,分别是“水果”,“蔬菜”。单击它们将仅显示相应的类别。

我设法让显示功能正常工作,但我不知道在选择时如何在selectedState中设置按钮。

我创建了如下所示的工具栏

UIBarButtonItem *fruits = [[UIBarButtonItem alloc] initWithTitle:@"Fruits" style:UIBarButtonItemStyleBordered target:self action:@selector(fruitsClicked:)];
UIBarButtonItem *vegetables = [[UIBarButtonItem alloc] initWithTitle:@"Vegetables" style:UIBarButtonItemStyleBordered target:self action:@selector(vegetablesClicked:)];
NSArray *items = [NSArray arrayWithObjects: fruits,vegetables,nil];
[fruits release];
[vegetables release];
[self setToolBarItems:items];

和选择器如

-(void)fruitsClicked:(id)sender{
     //code here
}

由于我之前发布了按钮,我无法设置

fruits.enabled=NO;

我们将不胜感激。

3 个答案:

答案 0 :(得分:2)

我认为添加单独的按钮不是一个好的设计和策略,你应该使用UISegmentad控件,它是你想要的组件设计:从X中选择一个段。

您可以像这样使用它(例如选择第一项):

UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:array];
[segment setSelectedSegmentIndex:0];

获取所选项目:

segment.selectedSegmentIndex

答案 1 :(得分:0)

传递给fruitClicked处理程序的sender参数将是指向UIBarButtonItem的指针。你可以像这样投射:

[((UIBarButtonItem*)sender) setEnabled:NO];

然而,一旦按钮被禁用,它就不再接受点击(即你不能再次点击它来重新启用它)。我会为按钮使用customView并自己实现启用/禁用外观。

答案 2 :(得分:-1)

我对UIToolBars没有任何经验,但从我看到的,选择器获取发件人的ID,对吧?您可以使用它来访问单击的按钮,然后将其设置为选中状态。