Как обрабатывать ключевые события в iphone
Привет, я работаю над приложением для iphone и хочу обрабатывать события клавиатуры в iphone. В Mac есть класс NSEvent, который обрабатывает события клавиатуры и мыши, а в ios (iphone/ipad) аналог NSEvent - UIEvent, который обрабатывает только сенсорные события. Я знаю, что IOS API не обеспечивает эту функциональность, но как я могу обрабатывать ключевые события в iphone??? Любой хороший учебник или что-то, чтобы начать...
2 ответа
Вы не можете напрямую кодировать для keyboad;s ключ и нет мыши в случае устройства.
Вы можете создать свою логику для различных типов наборов символов или сделать свою логику в методах textField delgate или Textview Delegates
делегат textView
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
делегат textField
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
Вы также можете использовать уведомления для textField и Textview.
Для TextField используйте это
вызовите этот метод регистрации в viewDidLoad
-(void)registerForTextFieldNotifications {
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver:self
selector:@selector (handle_TextFieldTextChanged:)
name:UITextFieldTextDidChangeNotification
object:self.textField];
}
- (void) handle_TextFieldTextChanged:(id)notification {
if([iSinAppObj.passCodeString isEqualToString:lockTextField.text])
{
//code here
}
}
и для просмотра текста вам нужно изменить только имя события, как это
[notificationCenter addObserver:self
selector:@selector (handle_TextFieldTextChanged:)
name:UITextViewTextDidChangeNotification
object:self.textField];
Вы можете использовать уведомления для обработки событий, как описано здесь: http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html
Но функциональность очень ограничена.