当使用setTitle:forState:(UIButton)时,它会产生奇怪的结果

时间:2014-03-23 18:35:38

标签: objective-c uibutton interface-builder

我正在从我的编程书中练习。我在Interface Builder中设置了一个小的自定义视图。

Custom view

我已将"编辑" - 按钮的事件设置为文件所有者中的toggleEditMode:

正在处理视图的视图控制器(视图是表头视图)具有以下toggleEditMode:

的实现
- (IBAction)toggleEditingMode:(id)sender
{
    if (self.isEditing)
    {
        [sender setTitle:@"Edit"
                forState:UIControlStateNormal];

        [self setEditing:NO
                animated:YES];
    }
    else
    {
        [sender setTitle:@"Done"
                forState:UIControlStateNormal];

        [self setEditing:YES
                animated:YES];
    }
}

在Interface Builder中,我还将File的所有者自定义类设置为我的视图控制器。 UIView背景也设置为视图控制器中的正确属性。

问题

  • 当我按下"编辑"时,其名称将更改为" ...",这不是它应该做的事情。
  • 但是,如果我将名称更改为" 12345"它会表现正常。在Interface Builder中。
  • 如果我将名称更改为" Edit2" (注意,也是五个字母),它改为" D ... e"。
  • 如果我把它命名为简短的东西,比如" NS",它也会产生三个点。

有谁知道发生了什么?我按照了我的书,在书中它运作正常。

1 个答案:

答案 0 :(得分:1)

注意:完全归功于Matthias Bauch,他在评论中回答了这个问题。

对于按钮来说太长的文本字符串将被截断。要解决此问题,可以通过拖动按钮的边角(在界面生成器中)使按钮的框架更大。