如果为 tableview 启用了编辑模式,它会显示一个标题为 Edit 的按钮,按下它时会将标题更改为 done
我想知道是否有办法将完成按钮标题更改为其他内容?
我已经更改了完成按钮的标题。
我使用的代码是
self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.editButtonItem.title = @"Change";
现在编辑是变化
如何完成其他事情?
如果为 tableview 启用了编辑模式,它会显示一个标题为 Edit 的按钮,按下它时会将标题更改为 done
我想知道是否有办法将完成按钮标题更改为其他内容?
我已经更改了完成按钮的标题。
我使用的代码是
self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.editButtonItem.title = @"Change";
现在编辑是变化
如何完成其他事情?
您可以像这样更改编辑按钮的标题:-
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
// Make sure you call super first
[super setEditing:editing animated:animated];
if (editing)
{
self.editButtonItem.title = NSLocalizedString(@"Cancel", @"Cancel");
}
else
{
self.editButtonItem.title = NSLocalizedString(@"Edit", @"Edit");
}
}
它的工作方式类似于编辑:-
至
这是为 Swift 更改它的方法
override func setEditing (editing:Bool, animated:Bool)
{
super.setEditing(editing,animated:animated)
if (self.editing) {
self.editButtonItem().title = "Editing"
}
else {
self.editButtonItem().title = "Not Editing"
}
}
基于Nitin 的回答,我建议采用一种稍微不同的方法,即使用内置UIButtonBar
系统项。
这将为您的 UI 提供系统外观和感觉。例如,停止编辑的标准“完成”按钮在 iOS 8 上应该具有特定的粗体外观。Apple 将来可能会更改这些样式。通过使用系统定义的按钮,您的应用程序将自动选择当前的审美。
这种方法还为您提供免费的字符串本地化。Apple 已经为您将系统按钮标题翻译成 iOS 支持的数十种语言。
这是我得到的代码:
-(IBAction) toggleEditing:(id)sender
{
[self setEditing: !self.editing animated: YES];
}
-(void) setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing: editing animated: animated];
const UIBarButtonSystemItem systemItem =
editing ?
UIBarButtonSystemItemDone :
UIBarButtonSystemItemEdit;
UIBarButtonItem *const newButton =
[[UIBarButtonItem alloc]
initWithBarButtonSystemItem: systemItem
target: self
action: @selector(toggleEditing:)];
[self.navigationItem setRightBarButtonItems: @[newButton] animated: YES];
}
这里的示例适用于您UIViewController
托管在 a 中的情况UINavigationController
,因此有一个UINavigationItem
实例。如果您不这样做,则需要以适当的方式更新栏项目。
在您viewDidLoad
使用以下调用来配置准备使用的编辑按钮:
[self setEditing: NO animated: NO];