2012-04-20 9 views
1

入力時に2つのテキストフィールドが一致すると、ユーザーに視覚的に報酬を与えることができます。これはjQuery-esqueで、Objective-C/Xcodeで可能かどうかはわかりません。ここの鍵は「彼らのようなもの」です。 Webベースのユーザーアカウント設定フォームの中には、password/confirmPassword(主にセキュリティで保護されたフィールド形式...•••)またはemail/confirmEmailフォームフィールドが一致すると、緑のチェックボックスが表示され、パスワードが失われた場合は赤色の「X」に変わります彼らのマッチ。Objective-C/Xcode - ユーザータイプとしてのパスワードチェック

Objective-C/XcodeにonKeystrokeイベントと類似したものはありますか?

私はこれを研究して学びたいです。私はちょうどこのタイプの機能を正しく参照する方法を知らない。あなたが欲しい

+0

Xcodeの質問ではありません。 – Almo

+0

代わりにObj-Cを参照するように編集する必要がありますか? Xcodeを使用しています。 – TSNev

+0

MacまたはiOS?もう少し正確にしてください;) –

答えて

1

すべてがここにhttps://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/HandlingKeyEvents/HandlingKeyEvents.html#//apple_ref/doc/uid/10000060i-CH7-SW1

あなたが探しているものであることは、あなたのテキストビューに次のように実装し、キーストロークをバッファリングして、テキストフィールドとそれらを比較することです。

あなただけのテキストフィールドの値を観察し、自分のコールバックでは、あなたのロジックを行うことができ
- (void)keyUp:(NSEvent *)theEvent 
+0

ありがとう、ルーク。私はこれに感謝します。確かめます。 – TSNev

+1

私はkeyupと一緒に行くつもりはありません。値はkeyup-eventなしで変更することもできます。 –

+0

'keyUp:'をオーバーライドするには、 'NSTextField'をサブクラス化する必要があります。生のキーイベントを取得します。それで、あなた自身がテキストに処理する必要があります。ここでの正しいルートは、['NSTextFieldDelegate'](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSTextFieldDelegate_Protocol/Reference/Reference.html)または[' NSTextDelegate']( http://developer.apple.com/library/mac/documentation/Cocoa/Reference/NSTextDelegate_Protocol/)、テキストは通知方法を変更しました。 @TSNev –

1

:すべての文字があまりにも多くのウェブサーバーの帯域幅を消費することが後に

[self.textField1 addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventValueChanged]; 
[self.textField2 addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventValueChanged]; 

- (void)textChanged:(UITextField *)sender 
{ 
    if ([self.textField1.text isEqualToString:self.textField2.text]) 
    { 
     // passwords match 
    } 
    else 
    { 
     // passwords don't match 
    } 
} 
0

はチェック、1.4を確認し、「タイマー」を試しますユーザーが入力を停止してから数秒後に

@property IBOutlet NSSecureTextField *txtPassword; 
@property NSThread *syncPasswordTimer; 

- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(passwordType) name:NSControlTextDidChangeNotification object:txtPassword]; 
} 

    - (void)passwordType 
    { 
     [syncPasswordTimer cancel]; 
     syncPasswordTimer = [[NSThread alloc] initWithTarget:self selector:@selector(passwordTimer) object:nil]; 
     [syncPasswordTimer start]; 
    } 

    - (void)passwordTimer 
    { 
     [NSThread sleepForTimeInterval:1.4f]; 

     if([[NSThread currentThread] isCancelled]) 
     { 
      [NSThread exit]; 
     }else{ 
      NSLog(@"'%@'",txtPassword.stringValue); 
      //DO THE CHECKING 
     } 
    } 
関連する問題