Клавиатура Iphone - PullRequest
       23

Клавиатура Iphone

0 голосов
/ 20 мая 2009

Можно ли узнать, когда пользователь коснется клавиатуры iphone? Когда пользователь касается кнопки на клавиатуре ...: /

1 Ответ

1 голос
/ 20 мая 2009

Самый простой способ - использовать TextField. Даже если ваш пользовательский интерфейс не вызывает, вы можете установить его кадр на ноль, чтобы он не отображался на экране. Затем вы можете получить доступ к нажатым клавишам, используя методы обратного вызова делегата текстового поля.

- (void)viewDidLoad {
    [super viewDidLoad];
    //CGRectZero because we don't want the textfield to be shown onscreen
    UITextField *f = [[UITextField alloc] initWithFrame:CGRectZero];
    //We set the delegate so we can grab keypressed
    f.delegate = self; 
    [self.view addSubview:f];
    [f becomeFirstResponder];  //Show the keyboard
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
                                                       replacementString:(NSString *)string {
    if (string.length >0) {
       NSLog(@"%@ Pressed",string);
    }
    else {
       NSLog(@"Backspcae pressed");
    }        
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    NSLog(@"return pressed");
    return YES;
}

Примечание: чтобы избежать предупреждения компилятора, убедитесь, что в вашем файле .h класс явно говорит, что он реализует протокол UITextFieldDelegate. то есть:

@interface MyViewController : UIViewController <UITextFieldDelegate> 
...