3

TextFieldに何かを書き込むときに、ボタンを有効にする際に問題が発生します。TextFieldに何もない場合は無効にしましたが、何かを書き込んだときに再度有効にすることはできません。

私はこのようなものを持っています:

- (void)viewDidLoad {
    [super viewDidLoad];

    NSUInteger textLength = [_Name.text length];
    [_doneButton setEnabled:(textLength > 0)];

}
4

7 に答える 7

9

デリゲートをUITextFieldに設定し、次のようにViewDidLoadでテキスト変更のメソッドを作成します。

[self.textFieldTemp addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

そして、次のようにメソッドを追加します。

- (void)textFieldDidChange:(UITextField *)textField {
    if(textField == self.textFieldTemp) 
        self.buttonTemp.enabled = ([self.textFieldTemp.text length] > 0) ? YES : NO; }
于 2012-12-20T05:54:31.720 に答える
2

これを試して

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if([textField.text length]>0){
    [doneButton setEnabled:YES];        

}
else{
 [doneButton setEnabled:NO ;
}

これがお役に立てば幸いです。

于 2012-12-20T05:51:56.203 に答える
1

デリゲートメソッドを使用UITextFieldして、ボタンを再度有効にします。キャラクターが変更されると、デリゲートメソッドが呼び出されますtextField。ここでボタンを有効にしてください。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
     _doneButton.enabled = YES;
}
于 2012-12-20T05:51:35.390 に答える
1

テキストフィールドデリゲートメソッドに行を配置します。

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

それならうまくいくでしょう。このメソッドは、テキストフィールドに文字を入力するたびに呼び出されます。ただし、ViewDidLoadは、ビューコントローラがロードされている場合にのみ呼び出されます。

それがあなたのために働くことを願っています。

于 2012-12-20T05:54:09.840 に答える
0

これらの2つの関数は、テキストフィールドのテキストに応じてボタンを有効または無効にします

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
     _doneButton.enabled = YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
if([textField.text length]>0){
   [doneButton setEnabled:YES];        
}
else{
 [doneButton setEnabled:NO ;
}
于 2012-12-20T05:56:46.617 に答える
0

UITextFieldのデリゲートを使用して、このようなボタンを有効または無効にすることができます。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
{
if (textField.text.length!=0)
{
yourButton.enabled = YES;
}
else
{
yourButton.enabled = NO;
}
}
于 2012-12-20T06:11:08.633 に答える
0

私が使用した方法では、デリゲートをまったく使用しませんでした。コントローラクラスでこのメソッドを作成しました。

- (IBAction)textFieldChanged:(id)sender
{
    self.doneButton.enabled = ([self.Name.text length] > 0) ? YES : NO;
}

次に、Interface Builderで、テキストフィールド「EditingChanged」アクションを設定して、新しいメソッドをターゲットにします。次に、@ Paramasivan Samuttiramと同様に、に追加の呼び出しを追加しましたviewDidLoad:

[self textFieldChanged:self.Name];

その部分により、ボタンを最初に正しい状態にすることができます。

于 2013-11-15T22:27:41.340 に答える