簡體   English   中英

iOS AlertView應用程序擴展

[英]iOS AlertView App Extension

我正在使用自定義keyboard (iOS App Extension) 我有一個UICollectionView在我的Keyboard Layout ,所以當一個item選擇我要顯示一個messageUIAlerView為例)。

這是我的代碼:

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{

 ...

UIAlertController * alert=   [UIAlertController
                              alertControllerWithTitle:@"My Title"
                              message:@"Enter User Credentials"
                              preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:alert animated:YES completion:nil];
}

我收到此錯誤: 'Feature not available in extensions of type com.apple.keyboard-service'

那么...有沒有辦法顯示來自App Extensionmessage

編輯:

這是一個例子。 IKEA Emoticons Keyboard顯示一條消息(選擇一項后就像Android Toast )。

我也嘗試過這個庫:

iOS Toast庫

在此處輸入圖片說明

說來可悲的是,但沒有辦法來顯示鍵盤擴展UIAlertView中。 實際上,在InputViewController框架上方無法顯示任何內容。 在蘋果的文檔中很明顯:

...自定義鍵盤只能在其UIInputViewController對象的主視圖內進行繪制...無法在自定義鍵盤的主視圖的頂部邊緣上方顯示按鍵圖稿,就像在您點擊和時系統鍵盤在iPhone上一樣在第一行中按住一個鍵。

至於鍵盤內的消息,有一些有用的庫可以幫助我們。 例如https://github.com/scalessec/Toasthttps://github.com/sergeylenkov/PTHintController

最后我解決了這個問題。 這不是最佳解決方案,但至少我得到了想要的效果。

我創建了一個View模擬Toastxib文件,並將其設置為hidden

選中該項目后,我將顯示“偽造” Toast 2秒鍾,然后再次將其隱藏。

self.popUpView.hidden = NO;

dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 2.0 * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    self.popUpView.hidden = YES;
});

我不知道這是否是一個好的解決方案,但我確實必須為此找到解決方案。

對於Swift,您可以使用:

self.popUpView.isHidden = false
    DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
        self.popUpView.isHidden = true
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM