2015-05-23 25 views
6

Özel klavye kullanıyorum ve farklı düğmeyi gösteren uygulama nasıl algılanır? E.g. Twitter'da ben giriş alanına yazıyorum ve Reddit/r/Özel bir iOS klavyesinde, uygulamayı algılar

+2

Schemetrical'in dediği gibi, içinde bulunduğunuz uygulamayı belirleyemezsiniz (en azından, * olması gereken * olmadığınızı, ve muhtemelen burada yazılan herhangi bir cevabın bir boşluk olduğu kabul edilir ve Apple), ama siz * bir Twitter stili metin alanında olduğunuzu ve herhangi bir uygulamadan kullanılabilen Twitter'da yayınlamak için API'lar oluşturulduğundan, uygulamayı bilmekten daha iyi olabilecek uygun bir şekilde yanıt verebileceğinizi * bilebilirsiniz . –

+0

@Benet için teşekkür ederiz! "Twitter stili metin alanı" ile ilgili tüm ipuçlarını takdir ediyorum –

+2

API'da bu protokolü uygulayan bir nesneye (Unutmayacağım) erişiminiz var: https://developer.apple.com/library/ios/documentation/UIKit/Reference o, UIKeyboardTypeNumbersAndPunctuation, UIKeyboardTypeURL, UIKeyboardTypeNumberPad, UIKeyboardTypePhonePad, UIKeyboardTypeNamePhonePad, UIKeyboardTypeEmailAddress, UIKeyboardTypeDecimalPad, UIKeyboardTypeTwitter, UIKeyboardTypeWebSearch, UIKeyb –

cevap

2

'da bu mümkün olmaz. Bir uzantı korumalı çalışır ve yalnızca API'den bilgi beslenir ve başka herhangi bir şeye erişemez. Klavye sadece metin içeriği değişiklikleri alabilir ve çağrıları etkinleştirebilir/devre dışı bırakabilir. Bir uygulamayı tespit edebilmek, uzantı sanal alanının dışında yer alır ve bu nedenle imkansızdır.

+0

Doğru ama bir geçici çözüm var (yukarıdaki yorumları kontrol edin) –

+2

'kendiliğinden. textDocumentProxy.keyboardType' çalışmalıdır. – Schemetrical

5

Aşağıdaki kod aracılığıyla mümkündür. Eğer paket tanımlayıcı itibaren

let hostBundleID = self.parentViewController!.valueForKey("_hostBundleID") 
    let currentHostBundleID = String(hostBundleID) 
    print(currentHostBundleID); 

Swift size özel klavye kullanıyorsanız uygulamanın paket tanıtıcısını .. alırsınız gibi kolayca uygulama adını bulabilirsiniz.

En iyi şanslar!