Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to handle key events in iphone

Hi I am working on an iphone application and want to handle keyboard events in iphone. In Mac, there is a class NSEvent which handles both keyboard and mouse events, and in ios (iphone/ipad) the counterpart of NSEvent is UIEvent which handles only touch events. I know ios API does not provide this functionality, but how can i handle key events in iphone??? Any good tutorial or sth, to get started...

like image 724
aqavi_paracha Avatar asked Jan 21 '23 07:01

aqavi_paracha


2 Answers

You cant directly code for keyboad;s key and there is no mouse in case of device.

you can make your logics for different kind of charectersets or you can make your logics in textField delgate methods or Textview Delegates method

textView delegate

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

textField delegate

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

You can also use Notification for textField and Textview.

For TextField use this

call this register method in 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
    }

}

and for text view you need to change only event name like this

[notificationCenter addObserver:self
                               selector:@selector (handle_TextFieldTextChanged:)
                                   name:UITextViewTextDidChangeNotification
                                 object:self.textField];
like image 195
Ishu Avatar answered Jan 22 '23 20:01

Ishu


You can use notifications to handle events as explained here: http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html

But the functionality is very limited.

like image 32
Jose Cherian Avatar answered Jan 22 '23 22:01

Jose Cherian