我正在制作一个用于学习目的的笔记应用程序,我遇到了UIBarButtons的问题。
问题
当我点击文本视图开始编辑时,我希望右边的按钮更改为“完成”,以便用户可以用它关闭键盘(并在后台自动保存)。我的问题是在用户按下“完成”后,按钮返回原来的右栏按钮。
到目前为止我尝试了什么
我尝试将原始位置作为视图的属性,但在我看来,故事板将条形按钮表示为位置而不是实际实体。所以这是不成功的,因为我在尝试时只得到一个空白点。
我一直在寻找答案,但我没有得到答案。请帮帮我。
答案 0 :(得分:0)
你在UIBarButtonItem
中的权利不是视图,它们只是描述视图的对象。因此,无法在它们上设置框架或中心。
您需要做的是创建两个UIBarButtonItems
一个用于编辑,一个用于完成。然后使用UIToolBar
方法或属性,您需要删除编辑按钮,但稍后保留它,并将完成按钮插入其位置。完成后,交换掉。
您可以UIToolBar
抓取toolbar.items
个项目,它将是NSArray
。然后,您可以removeObjectAtIndex:
删除编辑按钮。然后,您可以insertObject:atIndex:
添加完成按钮。然后返回UIToolBar
setItems:animated
。{/ p>
// Get current items
NSMutableArray *temp = [toolBar.items mutableCopy];
// Check for editing, with your own variable, then insert/remove buttons
if (/*Editing*/) {
[temp removeObject:editButton];
[temp insertObject:doneButton atIndex:0];
} else {
[temp removeObject:doneButton];
[temp insertObject:editButton atIndex:0];
}
// Send back to your toolbar
[toolBar setItems:temp animated:YES];