2013-10-05 16 views
2

我正在使用Xcode 5的故事板來創建應用程序iOS SDK 7.0。UIButton選中狀態不在iOS7中工作

我將一個按鈕拖到視圖。我希望我的按鈕默認顯示「A」。以下是按鈕屬性: 類型:系統,狀態配置:默認,標題:普通

我希望我的按鈕在選定狀態下顯示「B」。因此,更改的按鈕屬性: 狀態配置:選中

在按鈕的屬性檢查器中的控件下,有一個名爲Selected的屬性。 如果我選中Selected,而不是顯示「B」,它只是突出顯示A上的標記,即沒有看到任何字符。

我在XCODE中運行它。當沒有選擇按鈕時按預期顯示「A」,但是當我選擇按鈕而不是顯示B時,按鈕的文本部分以淺藍色突出顯示。另外,我從未選擇控件下的突出顯示的內容。

如何解決這個問題,以便我可以正確顯示狀態?

回答

5

你需要按鈕的冠軍設置爲「B」,而你有國家配置設爲您的故事板選擇。然後,您需要將操作連接到按鈕的Touch Up Inside事件。在該動作中,切換按鈕的selected屬性。

當您在屬性檢查器中選中「選定」時,您只需將按鈕的初始選擇狀態設置爲YES。 XCode還會顯示該按鈕在該狀態下的樣子。

+0

值得注意的是,你有類型:自定義選擇,因爲這不會造成差別。 – AppHandwerker

3

我發現這是XCODE 5中的一個錯誤,也就是說,當我們檢查按鈕的Control下的選定屬性時,它不顯示Button上的選定狀態。它在我們運行應用程序的模擬器中工作。我們需要做的按鈕目標,行動和切換選擇的狀態,如下

- (IBAction)flipButton:(UIButton *)sender { 
     sender.selected=!sender.isSelected; 
    } 
+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];