как обрабатывать ключевые события в iphone - PullRequest
4 голосов
/ 07 марта 2011

Привет, я работаю над приложением для iphone и хочу обрабатывать события клавиатуры в iphone.В Mac есть класс NSEvent, который обрабатывает события клавиатуры и мыши, а в ios (iphone / ipad) аналог NSEvent - UIEvent, который обрабатывает только сенсорные события.Я знаю, что IOS API не предоставляет эту функцию, но как я могу обрабатывать ключевые события в iphone ???Любой хороший учебник или что-то еще, чтобы начать ...

Ответы [ 2 ]

7 голосов
/ 07 марта 2011

Вы не можете напрямую кодировать для keyboad; ключ и нет мыши в случае устройства.

вы можете сделать свою логику для различных типов наборов символов или вы можете сделать свою логику в методах textField delgate или TextviewМетод делегатов

делегат 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];
2 голосов
/ 07 марта 2011

Вы можете использовать уведомления для обработки событий, как описано здесь: http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html

Но функциональность очень ограничена.

...