我读过这篇文章: Change the text of a UILabel (UIBarButtonItem) on a toolbar programmatically
但它似乎不适用于我的自动隐藏工具栏?
我也尝试barbuttonItem.title
来设置文本,也失败了。
有什么想法吗?
答案 0 :(得分:14)
您是否在Interface Builder
中创建了按钮?确保标识符设置为“自定义”,否则您将无法更改标题。
在UIBarButtonItem
中选择Interface Builder
,打开检查员(Command + Shift + I)
,然后在Identifier
旁边的下拉列表中选择“自定义”。
答案 1 :(得分:7)
试试这个:
UIBarButtonItem *clearButton = [[UIBarButtonItem alloc] initWithTitle:@"Clear" style:UIBarButtonItemStyleBordered target:self action:@selector(yourMethod:)];
答案 2 :(得分:4)
IBOutlet
,outToMyButton创建UIBarButtonItem
.m
outToMyButton.title = [NSString stringWithFormat:@"%i",myInt]; // or any NSString init
答案 3 :(得分:4)
以编程方式更改UIBarButtonItem
的标题
@interface YourController : UIViewController {
UIBarButtonItem *barButton;
}
- (void)viewDidLoad
{
barButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Set", @"Set")
style:UIBarButtonItemStylePlain
target:self
action:@selector(barButtonClicked)];
}
在BarButtonItem
行动
-(void)barButtonClicked{
if ([barButton.title isEqualToString:@"Set"]) {
//Enter Code
barButton.title = @"Done"
}else{
//Enter Code
barButton.title = @"Set"
}
}
答案 4 :(得分:0)
我认为我的问题与你的问题相似 - 但并不完全相同:我希望附件工具栏上的文字反映最后一个选择器组件的选择。
但是,我无法更改添加到UILabel
的{{1}}的文字,UIBarButtonItem
是inputAccessoryView
的一部分,显示在多组件滑动UIPickerView
上对于每个数据条目UITextFields
。这些元素以编程方式(Xcode v 4.3(4E109))创建,文本字段除外,每个文本字段都在故事板中创建并声明为属性。
既没有将文本分配给toolbarTitle标签,也没有使用toolbarTitle作为自定义视图分配/初始化条形按钮项目:
toolbarTitle.text = @"myTextFromPickerComponent";
UIBarButtonItem *title = [[UIBarButtonItem alloc] initWithCustomView:toolbarTitle];
//nor alloc/init-ing the bar button item directly, passing the new text to initWithTitle:
UIBarButtonItem *title = [[UIBarButtonItem alloc] initWithTitle:toolbarTitle.text style:UIBarButtonItemStyleDone target:self action:nil];
给出了理想的行为;即标签文本没有改变,即使我向NSLog确认我确实发送了新文本。
我在Custom Views for Data Input
,Input Views and InputAccessory Views
下的文档中得到了提示:
“第一响应者可以通过调用reloadInputViews
的{{1}}方法重新加载输入和附件视图。”
我通过使用当前UIResponder
调用UITextField
来实现此功能,这对我来说可以使用上面给出的两个代码片段中的任何一个。
答案 5 :(得分:0)
问题在于以编程方式更改UIBarButtonItem的文本:
这就是您的操作方式。 例如将天气信息添加到栏中。
import UIKit
...
@IBOutlet weak var weatherBarLabel: UIBarButtonItem!
//then
func setTheWeatherInfo(weather: WeatherModel){
weatherBarLabel.title = "\(weather.temperature)°"
}