以编程方式更改工具栏上的UILabel(UIBarButtonItem)的文本

时间:2009-08-04 02:15:24

标签: iphone

我是初学者iPhone开发者。 我的代码如下:

UIBarButtonItem *fixedSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];  
UILabel *lblTotCaratteri = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 25, 15)];
lblTotCaratteri.textAlignment = UITextAlignmentCenter;
lblTotCaratteri.font = [UIFont italicSystemFontOfSize:13.0];
lblTotCaratteri.textColor = [UIColor greenColor];
lblTotCaratteri.backgroundColor = [UIColor clearColor];
lblTotCaratteri.adjustsFontSizeToFitWidth = YES;
lblTotCaratteri.text = @"0";

UIBarButtonItem *lblCaratteri = [[UIBarButtonItem alloc] initWithCustomView: lblTotCaratteri];

inserimentoToolbar.items = [NSArray arrayWithObjects:fixedSpace, lblCaratteri, fixedSpace, nil];

所以在我看来,我有一个UITextView,这个工具栏以编程方式创建。 我想在每次向UITextView添加字符时更改标签文本。 每次UITextView文本更改时,我都会显示每个按键的警报。 我无法弄清楚如何更改标签文字。 我希望我已经解释了我的情景。 对不起我的英语不好。 问候,卢卡。

2 个答案:

答案 0 :(得分:6)

一种方法是,假设在您的界面中声明了inserimentoToolbar:

[(UILabel *)[[toolbar.items objectAtIndex:1] view] setText:@"sometext"];

这实际上只有在您的工具栏不会更改时(就对象而言)才有效。

更理想的解决方案是将lblTotCaratteri放入您的界面(在头文件中)。像:

@interface UntitledViewController : UIViewController {
    UILabel *lblTotCaratteri;
}

然后您输入的代码就像

一样
UIBarButtonItem *fixedSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];  
lblTotCaratteri = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 25, 15)];
lblTotCaratteri.textAlignment = UITextAlignmentCenter;
// etc etc etc

然后在任何时候,只需使用

lblTotCaratteri.text = @"sometext";

答案 1 :(得分:5)

哟,这对我有用,当我点击相同的UIBarButtonItem时,我更改了UIBarButtonItem标题。意味着我需要的是触发器。如果第一次单击它会显示“MyText1”,然后再次单击,标题将更改为“MyText2”。用户点击按钮时文本切换。

-(IBAction)myBarButtonItem:(id)item{

 if(flag){
   flag=FALSE;
   [(UIBarButtonItem *)item setTitle:@"MyText1"];
}
else{
  flag=TRUE;
  [(UIBarButtonItem *)item setTitle:@"MyText2"];
}

注意:我还没有以编程方式创建UIBarButtonItem。我在Interface Builder中创建并将方法“myBarButtonItem”的引用设置为此按钮。因此,当UIBarButtonItem或按下这种类型的按钮时,它调用方法“myBarButtonItem”并发送按钮的引用作为参数,我进一步输入(UIBarButtonItem *)并使用setTitle属性来更改它的文本或说标题。

***宣布方法的签名,即     在您的头文件中: - (IBAction为)myBarButtonItem:(ID)项;