現在の答えはこれです:
View Controller を UITextFieldDelegate に準拠するように設定します (コードの上部近くで次のようになります)。
@interface YourViewController () <UITextFieldDelegate>
...
@ end
@ implementation YourViewController
...
@end
次に、テキストフィールドで View Controller をデリゲートとして使用するようにします。これを行うには、Interface Builder に移動し、テキストフィールドをクリックして制御し、View Controller の下のバーにある黄色の円に線をドラッグして、ポップアップするメニューから「デリゲート」を選択します。または、次の段落で説明するプロパティを作成した後にデリゲートを設定することにより、コードでこれを行うこともできます。self.yourTextField.delegate = self; でこのようにします。おそらくviewDidLoad内の適切な場所に。
また、View Controller のプロパティとして textField を設定します。これを行うには、コードをアシスタント エディターで開いた状態で Interface Builder に移動し、Interface Builder のテキスト フィールドからプロパティがリストされているコード内の場所 (@interface と最初の@終わり)。次に、ポップアップ ウィンドウに名前を入力します。以下のコードでは、たとえば「yourTextField」を使用しました。(これが View Controller をデリゲートとして使用する唯一のテキスト フィールドであることが確実な場合は、以下のコードの外側の if ループと一緒に、このセクションをスキップできますが、将来の可能性について前もって計画することをお勧めします)
次に、次のデリゲート メソッドを使用して、スペースの入力を禁止することができます。
- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == self.yourTextField)
{
if ([string isEqualToString:@" "] )
{
return NO;
}
}
return YES;
}