0

ユーザーがキーボードのiphoneに触れたときに知ることは可能ですか? ユーザーがキーボードからいくつかのボタンに触れると... :/

4

1 に答える 1

1

最も簡単な方法は、TextField を使用することです。UI が 1 つを呼び出さない場合でも、フレームをゼロに設定して、画面に表示されないようにすることができます。次に、テキスト フィールドのデリゲート コールバック メソッドを使用して、押されたキーにアクセスできます。

- (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> 
于 2009-05-20T19:54:37.130 に答える