Привет, я работаю над приложением для iphone и хочу обрабатывать события клавиатуры в iphone. В Mac есть класс NSEvent, который обрабатывает события клавиатуры и мыши, а в ios (iphone/ipad) аналогом NSEvent является UIEvent, который обрабатывает только события касания. Я знаю, что ios API не предоставляет эту функциональность, но как я могу обрабатывать ключевые события в iphone??? Любой хороший учебник или что-то, чтобы начать...
как обрабатывать ключевые события в iphone
Ответы (2)
Вы не можете напрямую кодировать ключ клавиатуры, а в случае устройства нет мыши.
вы можете сделать свою логику для разных типов наборов символов или вы можете сделать свою логику в методах delgate textField или методе делегатов Textview
делегат textView
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
делегат текстового поля
- (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];
person
Ishu
schedule
07.03.2011
Вы можете использовать уведомления для обработки событий, как описано здесь: http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html
Но функционал очень ограничен.
person
Jose Cherian
schedule
07.03.2011
Большое спасибо ... но эта ссылка, похоже, не дает мне полной функциональности ... Я хочу обрабатывать каждый ключ, введенный пользователем (на iphone), и отправлять его на другой компьютер по локальной сети.
- person aqavi_paracha; 07.03.2011
Может быть, использовать скрытое текстовое поле и захватывать входные данные через делегатов?
- person Jose Cherian; 07.03.2011
да, я думал о том же решении... Итак, позвольте мне попробовать Большое вам спасибо... Ура
- person aqavi_paracha; 07.03.2011