Вы можете сделать:
import inspect
mydict = {'one': 1, 'two': 2}
source = inspect.getsourcelines(inspect.getmodule(inspect.stack()[0][0]))[0]
print [x for x in source if x.startswith("mydict = ")]
Также: убедитесь, что не скрываете встроенный диктет!
Посмотрите на textField: shouldChangeCharactersInRange
Этот метод вызывается UITextFieldDelegate
всякий раз, когда вводятся новые символы или существующие символы удаляются из текстового поля. Вы можете вернуть NO, чтобы запретить изменение.
Вы можете зацикливаться и продолжать проверять, изменилось ли свойство UITextField.text после вызова метода DidBeginEditing. Если да, проверьте текст и удалите недопустимые символы.
Посмотрите на метод UITextViewDelegate
- (BOOL) textField: (UITextField *) textField shouldChangeCharactersInRange: (NSRange) range replacementString: (NSString10 *) ].
Это именно то, что вам нужно.
Я сделал, как предлагал marcc, и это сработало. Ниже приводится пример реализации.
Примечание: Имена переменных были выбраны для краткости и не отражают мои стандарты кодирования:
...
myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"xyzXYZ"];
...
}
- (BOOL) textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)textEntered {
for (int i = 0; i < [textEntered length]; i++) {
unichar c = [textEntered characterAtIndex:i];
if (![myCharSet characterIsMember:c]) {
return NO;
}
}
return YES;
}