2013-04-26 96 views
1

我正在改進我的iOS項目的輔助功能,並使用UINavigationController。 我的UINavigationItem有兩個按鈕,左邊是「取消」。UINavigationController和UINavigationItem的輔助功能

默認情況下,顯示視圖時取消按鈕被選中。 用戶聽到的第一件事就是「取消」。

我真正想要的是,標題應選擇和口語,以及 取消按鈕應該無法選擇

問題:

  1. 這是應該的,而且可能是什麼原因呢?
  2. 是否有人成功取消選擇了該按鈕,而是選擇了標題?

謝謝, 克拉斯

回答

2

Apple's UIAccessibility Guide來自:

UIAccessibilityLayoutChangedNotification - 發佈者應用程序時的畫面變化的佈局,當一個元件出現或消失,例如。此通知包含一個參數,該參數是VoiceOver說的NSString對象或VoiceOver移動到的可訪問性元素。

所以,你可以做這樣的事情:

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification,title); 
} 

,就應該替換「標題」與你想要的實際可訪問性元素上面的代碼中進行選擇,併發言。

您還可以使用UIAccessibilityScreenChanged代替UIAccessibilityLayoutChanged「當一個新的觀點看來,包括屏幕的主要部分」

+0

感謝您的回答。我已經試過了,甚至將左邊的按鈕的特徵位置零。沒有運氣。這似乎是一個很難改變的默認行爲。 – claxclinton 2013-04-29 15:20:50

+0

這是默認行爲,但不難改變。我正在使用我發佈的代碼,在類似情況下也沒有問題(navigationcontroller)。無論左側按鈕的特徵是什麼,通知強制將焦點轉換爲您傳遞的元素作爲參數)。我只是在上面輸入「標題」,但是你必須改變它到你的應用中正確的元素。例如,它可能是「self.title」或類似的東西。 – user1459524 2013-04-29 23:05:19

+0

謝謝,user1459524! 它工作正常。有點好奇,爲什麼它必須在視角出現後才能完成。 但是沒關係。無論什麼作品。 再次感謝。 – claxclinton 2013-05-02 09:00:06