Я хочу определить текущий режим ввода клавиатуры и изменить направление текста по отношению к нему (rtl, если арабский и ltr, если английский).UITextInputCurrentInputModeDidChangeNotification return nil in ios 8.3
В следующем коде:
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(changeInputMode:)
name:UITextInputCurrentInputModeDidChangeNotification
object:nil
];
}
-(void)changeInputMode:(NSNotification *)notification
{
UITextInputMode *thisInputMode = [notification object];
NSLog(@"inputMethod=%@",thisInputMode);
}
thisInputMode
является nil
!
Если я использую этот код вместо:
NSString *inputMethod = [[UITextInputMode currentInputMode] primaryLanguage];
NSLog(@"inputMethod=%@",inputMethod);
Он отлично работает и определяет текущий режим ввода, но currentInputMode
является устаревшим.
Почему [notification object]
nil
?
Вы не можете использовать его вместо этого, потому что 'activeInputModes' возвращает все доступные режимы ввода, а не текущий – zxcat