如何在编辑UItextview时交换UIBarbuttons

时间:2013-08-06 11:54:05

标签: uitextview uinavigationbar uibarbuttonitem

我正在制作一个用于学习目的的笔记应用程序,我遇到了UIBarButtons的问题。

问题

当我点击文本视图开始编辑时,我希望右边的按钮更改为“完成”,以便用户可以用它关闭键盘(并在后台自动保存)。我的问题是在用户按下“完成”后,按钮返回原来的右栏按钮。

到目前为止我尝试了什么

我尝试将原始位置作为视图的属性,但在我看来,故事板将条形按钮表示为位置而不是实际实体。所以这是不成功的,因为我在尝试时只得到一个空白点。

我一直在寻找答案,但我没有得到答案。请帮帮我。

1 个答案:

答案 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];