Kullanıcının klavye türlerini, özellikle de bu durumda Emoji klavyesini ne zaman değiştirdiğini algılamanın bir yolu var mı?Kullanıcı klavyeleri ne zaman değiştirir?
cevap
currentInputMode
'un geçerli dilini algılamak için UITextInputMode
'u kullanabilirsiniz. Emoji bir dil olarak değerlendirilir. docs Gönderen:
UITextInputMode
sınıfının bir örneği şimdiki metin giriş modunu temsil eder. Metin girişi için şu anda kullanılan birincil dilini belirlemek için bu nesneyi kullanabilirsiniz.
Böyle emojisi klavye için test edebilirsiniz: Sen UITextInputCurrentInputModeDidChangeNotification
yoluyla değişen giriş modu haberdar edilebilir
NSString *language = [[UITextInputMode currentInputMode] primaryLanguage];
BOOL isEmoji = [language isEqualToString:@"emoji"];
if (isEmoji)
{
// do something
}
. Mevcut giriş modu değiştiğinde bu yayınlanır.
İşte bir NSLog
yazdırır basit bir uygulama var her mod değişiklikleri:
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(changeInputMode:)
name:UITextInputCurrentInputModeDidChangeNotification object:nil];}
}
-(void)changeInputMode:(NSNotification *)notification
{
NSString *inputMethod = [[UITextInputMode currentInputMode] primaryLanguage];
NSLog(@"inputMethod=%@",inputMethod);
}
Ya da isterseniz Swift:
import UIKit
class ViewController: UIViewController
{
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self,
selector: "changeInputMode:",
name: UITextInputCurrentInputModeDidChangeNotification, object: nil)
}
func changeInputMode(notification : NSNotification)
{
let inputMethod = UITextInputMode.currentInputMode().primaryLanguage
println("inputMethod: \(inputMethod)")
}
}
@MichaelGEmmons currentInputMode, iOS7'de kullanımdan kaldırılmıştır. Alternatif var mı? – Apollo
@Apollo Yep. Yeni yöntem, bir dizi UITextInputMode nesnesi döndüren 'activeInputModes''dir. _emoji_ "primaryLanguage" ile bir inputMode için diziyi kontrol edin ve aynı sonuçları elde edersiniz. – memmons
@MichaelGEmmons Bu dizi, tüm kullanıcılara mümkün olan klavyeleri sabit sırada döndürür. Hangi klavye üzerinde olduğumuzu nasıl bilebilirim? – Apollo
çözmeye gerek sorunun ne? – zaph
@Zaph Emoji klavyesi gösterildiğinde ekranda yeni bir UIView sunmaya çalışıyorum. – Apollo