Ily*_*ski 11 iphone cocoa-touch
在我的应用程序中我有一个工具栏,在某一点上我想禁用或启用一些按钮.最简单的方法是什么?如何访问UIToolbar的items属性?
这是我的代码:
-(void)addToolbar {
NSMutableArray *buttons = [[NSMutableArray alloc] init];
//Define space
UIBarButtonItem *flexibleSpaceItem;
flexibleSpaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemFlexibleSpace target:nil action:NULL];
//Add "new" button
UIBarButtonItem *newButton = [[UIBarButtonItem alloc]
initWithTitle:@"New" style:UIBarButtonItemStyleBordered target:self action:@selector(new_clicked)];
[buttons addObject:newButton];
[newButton release];
//Add space
[buttons addObject:flexibleSpaceItem];
//Add "make active" button
UIBarButtonItem *activeButton = [[UIBarButtonItem alloc]
initWithTitle:@"Make Active" style:UIBarButtonItemStyleBordered target:self action:@selector(make_active_clicked)];
[buttons addObject:activeButton];
[activeButton release];
[buttons addObject:flexibleSpaceItem];
//Add "edit" button
UIBarButtonItem *editButton = [[UIBarButtonItem alloc]
initWithTitle:@"Edit" style:UIBarButtonItemStyleBordered target:self action:@selector(edit_clicked)];
[buttons addObject:editButton];
[editButton release];
[flexibleSpaceItem release];
[toolBar setItems:buttons];
[buttons release];
}
Run Code Online (Sandbox Code Playgroud)
先感谢您.
Ale*_*yne 14
最简单的方法是保存对UIBarButtonItem实例变量的引用.
# header file
UIBarButtonItem *editButton;
Run Code Online (Sandbox Code Playgroud)
然后你的代码变成了
# .m file
editButton = [[UIBarButtonItem alloc]
initWithTitle:@"Edit"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(edit_clicked)];
[buttons addObject:editbutton];
Run Code Online (Sandbox Code Playgroud)
现在,在任何实例方法中的任何位置,禁用按钮都非常简单:
editButton.enabled = NO;
Run Code Online (Sandbox Code Playgroud)
也不要release马上,因为这个类现在拥有按钮对象.所以release它在dealloc方法中代替.
快速列举救援!
- (void) setToolbarButtonsEnabled:(BOOL)enabled
{
for (UIBarButtonItem *item in self.toolbarItems)
{
item.enabled = !enabled;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9700 次 |
| 最近记录: |