2014-02-10 66 views
2

我正在嘗試更改UIAlertView按鈕上的輔助功能標籤。我看到這個代碼在線:在UIAlertView中更改按鈕的輔助功能標籤 - iOS

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test" 
              message:@"Message" 
              delegate:nil 
            cancelButtonTitle:@"Ok" 
            otherButtonTitles:nil]; 


// In a standard UIAlertView there are 2 UILabels and some buttons 
// The UILabel with the message is always the 2nd object in the array 
NSArray *subviews = alert.subviews; 
UILabel *messageLabel = [subviews objectAtIndex:1]; 
[messageLabel setAccessibilityLabel:@"Some other text"]; 

但它只返回UILabels的子視圖,而不是按鈕(在我自己的情況下)。我該怎麼做呢?

回答

2

我的建議是使用自定義的警報link

基於對iOS7蘋果文檔----

警報查看外觀

無法自定義的警報意見

外觀

使警報視圖可訪問

默認情況下可以訪問警報視圖。

警報視圖的輔助功能屬於警報標題,警報消息和按鈕標題。如果VoiceOver已激活,則會在顯示提示時顯示「alert」字樣,然後說出其標題,如果設置了該消息,則會顯示其消息。當用戶點擊按鈕時,VoiceOver會說出其標題和單詞「按鈕」。當用戶點擊文本字段時,VoiceOver會說出其值和「文本字段」或「安全文本字段」。

有關常規信息使iOS視圖可訪問,請參閱 Making Views Accessible

+0

謝謝。如果需要自定義的alertview,將不再實現此功能 –

1

您無法訪問警報視圖的內部子視圖。在iOS7中,公共UIAlertView API僅用於收集信息,但實際上並未在任何點插入視圖層次結構中。所以當你修改子視圖時,它不會被注意到。

您將不得不使用開源實現,而不是系統提供的實現。