如何检测用户何时更换键盘?
有什么方法来检测用户何时更改键盘types,特别是在这种情况下的表情符号键盘?
您可以使用UITextInputMode
来检测currentInputMode
的当前语言 – 表情符号被视为一种语言。 从文档 :
UITextInputMode
类的一个实例表示当前的文本input模式。 您可以使用此对象来确定当前正在用于文本input的主要语言。
你可以像这样testing表情符号键盘:
NSString *language = [[UITextInputMode currentInputMode] primaryLanguage]; BOOL isEmoji = [language isEqualToString:@"emoji"]; if (isEmoji) { // do something }
您可以通过UITextInputCurrentInputModeDidChangeNotification
通知input模式更改。 这将在当前input模式改变时发布。
下面是一个简单的应用程序,只要模式改变就打印NSLog
:
- (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); }
或者如果你喜欢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)") } }