2

我正在使用 Xcode 5 的故事板来创建应用程序 iOS SDK 7.0。

我将一个按钮拖到视图中。我希望我的按钮默认显示“A”。以下是按钮属性:类型:系统,状态配置:默认,标题:普通

我希望我的按钮在选定状态下显示“B”。因此,更改的按钮属性:State Config: Selected

在 Button 的 Attribute 检查器中,在 Control 下,有一个名为 Selected 的属性。如果我选中 Selected,而不是显示“B”,它只是像 A 上的标记一样突出显示,即看不到任何字符。

我在 XCODE 中运行它。当未选择按钮时,“A”按预期显示,但是当我选择按钮时,按钮的文本部分以浅蓝色突出显示,而不是显示 B。此外,我从未选择控件下的突出显示内容。

如何解决这个问题,以便我可以正确显示状态?

4

3 回答 3

6

对于通过代码设置按钮标题的任何人,我发现在 iOS 7.1 上,您需要为各种按钮状态显式设置标题,而在 iOS 7.0 上,为 UIControlStateNormal 设置标题也适用于其他按钮状态。

// works on 7.0
[self.ibActionButton setTitle:NSLocalizedString(@"Register", nil) forState:UIControlStateNormal];

// works on 7.1
[self.ibActionButton setTitle:NSLocalizedString(@"Register", nil) forState:UIControlStateNormal|UIControlStateDisabled];
于 2014-03-12T03:10:23.073 回答
5

在情节提要中将 State Config 设置为 Selected时,您需要将按钮的标题设置为“B” 。然后你需要将一个动作连接到按钮的 Touch Up Inside 事件。在该操作中,切换按钮的属性。selected

当您在属性检查器下选中“已选择”时,您只是将按钮的初始选择状态设置为“是”。XCode 还会向您展示按钮在该状态下的外观。

于 2013-10-05T14:41:45.857 回答
3

我发现这是 XCODE 5 中的一个 bug,即当我们检查按钮的 Control 下的 selected 属性时,它并没有在 Button 上显示选中状态。它在我们运行应用程序的模拟器中工作。我们需要为按钮执行目标操作并切换选定状态,如下所示

 - (IBAction)flipButton:(UIButton *)sender {
      sender.selected=!sender.isSelected;
   }
于 2013-10-05T14:45:17.883 回答