我正在使用Xcode 5的故事板来创建一个应用程序iOS SDK 7.0。
我将一个按钮拖到视图中。我希望我的按钮默认显示“A”。以下是按钮属性: 类型:系统,状态配置:默认,标题:普通
我希望我的按钮在选定状态下显示“B”。因此,更改的按钮属性: 状态配置:已选择
在Button的属性检查器中,在Control下,有一个名为Selected的属性。 如果我选中选中,而不是显示“B”,它只是突出显示为A上的标记,即没有看到字符。
我在XCODE中运行它。如果未选择按钮,则按预期显示“A”,但是当我选择按钮而不是显示B时,按钮的文本部分将以浅蓝色突出显示。此外,我从未在控制下选择突出显示的内容。
如何解决这个问题,以便我能正确显示状态?
答案 0 :(得分: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];
答案 1 :(得分:5)
在故事板中状态配置设置为选定时,您需要将按钮的标题设置为“B”。然后,您需要将操作连接到按钮的Touch Up Inside事件。在该操作内部,切换按钮的selected
属性。
当您在“属性”检查器下选中“已选择”时,您只是将按钮的初始选择状态设置为“是”。 XCode还会显示该按钮在该状态下的样子。
答案 2 :(得分:3)
我发现这是XCODE 5中的一个错误,也就是说,当我们在按钮的Control下选中所选属性时,它不会在Button上显示所选状态。它适用于我们运行应用程序的模拟器。我们需要为按钮执行目标操作并切换所选状态,如下所示
- (IBAction)flipButton:(UIButton *)sender {
sender.selected=!sender.isSelected;
}