0

BSKeyboard Controlsを使用して、ユーザー名とパスワードのログインフィールドのキーボードの上に次/前の完了ボタンを配置しています。

私が達成したいことは次のとおりです。-フィールドの1つが空白の場合、完了ボタンは「完了」と表示されます-両方のフィールドに少なくとも1つの文字が含まれている場合、「ログイン」と表示されます。

テキストフィールドの内容をチェックする方法は複数あることを理解しています。hasTextisEqualToString!= nilなどです。しかし、ここで文字をチェックしようとしていると思います。

ifステートメントを配置するのに最適な場所と使用する場所を知る必要があります。

私の分野は

self.usernameField
self.passwordField

私のキーボードコントロールは次のように更新されます。

self.keyboardControls.doneTitle = NSLocalizedString(@"KeyboardControlsDone", @"test");

また

self.keyboardControls.doneTitle = NSLocalizedString(@"KeyboardControlsLogin", @"test");

更新された方法:

NSString *newText = [textField.text stringByReplacingCharactersInRange:range withString:string];

UITextField *otherTextField;
if (textField == self.passwordField)
{
    otherTextField = self.usernameField;
}
else
{
    otherTextField = self.passwordField;
}

if ([newText length] > 0 && [otherTextField.text length] > 0)
{
    self.keyboardControls.doneTitle = NSLocalizedString(@"KeyboardControlsLogin",@"Button for Keyboard Controls on Login page");
} else {
    self.keyboardControls.doneTitle = NSLocalizedString(@"KeyboardControlsDone", @"test");
}
4

1 に答える 1

0

UITextFieldDelegateを実装textField:shouldChangeCharactersInRange:replacementString:して、ユーザーがキーを入力したときに必要なものを実行できます。このようなもの:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *newText = [textField.text stringByReplacingCharactersInRange:range withString:string];

    UITextField *otherTextField;
    if (textField == self.passwordField)
    {
        otherTextField = self.usernameField;
    }
    else
    {
        otherTextField = self.passwordField;
    }

    if ([newText length] > 0 && [otherTextField.text length] > 0)
    {
//        Your code
    }
    return YES;
}

編集

そのデリゲートメソッドを使用する代わりに、変更されたイベント編集を使用します。そのイベントのアクションをIBまたはコードで設定する必要があり、次のようになります。

- (IBAction) textFieldEditingChanged
{
    if ([self.usernameField.text length] > 0 && [self.passwordField.text length] > 0)
    {
        self.keyboardControls.doneTitle = NSLocalizedString(@"KeyboardControlsLogin",@"Button for Keyboard Controls on Login page");
    } else {
        self.keyboardControls.doneTitle = NSLocalizedString(@"KeyboardControlsDone", @"test");
    }
}
于 2013-02-20T22:06:13.630 に答える