0

iOS Apprentice Series eBooksでは、チェックリストアプリを作成することになっています。チュートリアルでは、UITextFieldオブジェクト内のテキストに基づいて無効または有効になっているボタンバーに、[完了]ボタンを作成します。

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

self.doneBarButton.enabled = ([newText length] > 0);

return YES;
}

これで、テキストフィールドが空の場合、キーボードは(キーボードの)[完了]ボタンを無効にするように設定されます。キーボードの完了ボタンの状態を観察し、それに応じて完了ボタンバーボタンにそれを反映させる方法はありますか?

IEでは、キーボードの完了ボタンを有効にすると、ボタンバーの完了ボタンが有効になります。

4

2 に答える 2

1

UITextFieldプロパティを通じて必要なものをサポートしenablesReturnKeyAutomaticallyます。このプロパティはUITextInputTraitsプロトコルからのものです。

を作成するときにUITextField、このプロパティを設定します。

self.textField.enablesReturnKeyAutomatically = YES;

これは、テキストフィールドが空の場合、Returnキー(ラベルが付いているものは何でも)が自動的に無効になることを意味します。また、テキストを入力すると自動的に有効になります。

この状態を監視する方法はないためtextField:shouldChangeCharactersInRange:replacementString:、他の[完了]ボタンを更新するために既に持っているコードを実装する必要があります。

于 2013-03-08T02:11:14.763 に答える
0

次のイベントを使用して、テキストフィールドにターゲットを追加できます。

UIControlEventEditingDidBegin    
UIControlEventEditingChanged     
UIControlEventEditingDidEnd      
UIControlEventEditingDidEndOnExit
UIControlEventAllEditingEvents

例:でviewDidLoad

[_textField addTarget:self action:@selector(textFieldEditing:) forControlEvents:UIControlEventAllEditingEvents];

アクション方法:

- (void)textFieldEditing:(id)sender
{
    _doneButton.enable = ([[sender text] length]>0);
}
于 2013-03-08T01:41:56.520 に答える