我正在制作一个用于学习目的的笔记应用程序,但我遇到了 UIBarButtons 的问题。
问题
当我点击文本视图开始编辑时,我希望右栏按钮更改为“完成”,以便用户可以用它关闭键盘(并在后台自动保存)。我的问题是在用户按下“完成”后让按钮返回到我原来的右栏按钮。
到目前为止我尝试过的
我尝试将原始位置作为视图的属性,但在我看来,故事板将条形按钮表示为位置而不是实际实体。所以这是不成功的,因为我在尝试时只得到一个空白点。
我已经到处寻找答案,但我没有得到答案。请帮帮我。
我正在制作一个用于学习目的的笔记应用程序,但我遇到了 UIBarButtons 的问题。
问题
当我点击文本视图开始编辑时,我希望右栏按钮更改为“完成”,以便用户可以用它关闭键盘(并在后台自动保存)。我的问题是在用户按下“完成”后让按钮返回到我原来的右栏按钮。
到目前为止我尝试过的
我尝试将原始位置作为视图的属性,但在我看来,故事板将条形按钮表示为位置而不是实际实体。所以这是不成功的,因为我在尝试时只得到一个空白点。
我已经到处寻找答案,但我没有得到答案。请帮帮我。
你说得对,UIBarButtonItem
不是视图,它们只是描述视图的对象。因此,不可能在它们上设置框架或中心。
您需要做的是创建两个UIBarButtonItems
,一个用于编辑,一个用于完成。然后使用UIToolBar
方法或属性,您需要删除编辑按钮,但稍后再按住它,然后在其位置插入完成按钮。完成后反转交换。
你可以通过抢aUIToolBar
的物品toolbar.items
,它会是一个NSArray
。然后您可以removeObjectAtIndex:
删除编辑按钮。然后你可以insertObject:atIndex:
添加你的完成按钮。然后回到你的UIToolBar
for setItems:animated
。
// 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];