Текущий ответ таков:
Установите View Controller, чтобы он соответствовал UITextFieldDelegate (должен выглядеть примерно так в верхней части вашего кода):
@interface YourViewController () <UITextFieldDelegate>
...
@ end
@ implementation YourViewController
...
@end
Затем заставьте текстовое поле использовать View Controller в качестве его делегата. Сделайте это, перейдя в Интерфейсный Разработчик, управляйте щелчком по текстовому полю и перетаскиванием линии к желтому кружку на панели под Контроллером представления и выберите «делегировать» из всплывающего меню. В качестве альтернативы вы можете сделать это в коде, установив делегат после создания свойства, описанного в следующем абзаце. Сделайте это так с self.yourTextField.delegate = self; в соответствующем месте, возможно, в viewDidLoad.
Также установите textField как свойство в View Controller. Сделайте это, перейдя в Интерфейсный Разработчик с его открытым кодом в редакторе помощника, и управляйте щелчком и перетащите из текстового поля в Интерфейсном Разработчике к месту в коде, где перечислены свойства (между @interface и первым @конец). Затем введите имя во всплывающем окне. В приведенном ниже коде я использовал «yourTextField», например. (вы можете пропустить этот раздел вместе с внешним циклом if в приведенном ниже коде, если вы уверены, что это единственное текстовое поле, которое будет использовать View Controller в качестве своего делегата, но лучше всего заранее планировать будущие возможности)
Тогда вы можете запретить ввод пробелов, используя следующий метод делегата:
- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == self.yourTextField)
{
if ([string isEqualToString:@" "] )
{
return NO;
}
}
return YES;
}