#ios #objective-c
#iOS #objective-c
Вопрос:
Objective C есть ли какой-либо способ минимизировать код, поскольку у меня есть несколько текстовых полей на разных контроллерах.
Могу ли я закодировать только один раз и использовать его. Поскольку я хочу сделать текстовое поле прямоугольным, покажите изображение в левой части UITextFiled.
Пожалуйста, помогите, если это возможно. кодирование в несколько раз увеличивает размер байтов кода и отнимает время, коды тоже кажутся слишком громоздкими.
Комментарии:
1. да, создайте подкласс UITextField, который настроит текстовое поле так, как вы этого хотите, затем просто используйте свой класс вместо обычного UITextField
2. Это основная функция ООП: наследование, дочерние, родительские классы и т.д. 🙂
3. Может ли кто-нибудь помочь мне с любым надлежащим предварительно разработанным пользовательским классом для текстового поля.
Ответ №1:
Создайте подкласс UITextField
и повторно используйте его в проекте.
YourBaseTxtField.h
@interface YourBaseTxtField : UITextField
// Take required properties
@end
YourBaseTxtField.m
@interface YourBaseTxtField ()
@end
@implementation YourBaseTxtField
- (id)initWithCoder:(NSCoder *)aDecoder{
if (self = [super initWithCoder:aDecoder]) {
// Do customization
self.clipsToBounds = YES;
[self setLeftViewMode:UITextFieldViewModeAlways];
}
return self;
}
В вашем VCS
- (void)viewDidLoad{
self.textField = [[YourBaseTxtField alloc] init];
self.textField.delegate = self;
self.textField.keyboardType = UIKeyboardTypeDefault
}
// Use text field delegates
Спасибо
Комментарии:
1. — (id)initWithCoder:(NSCoder *)aDecoder{ if (self = [super initWithCoder: aDecoder]) { // Выполнить настройку самостоятельно.clipsToBounds = YES; [self setLeftViewMode:UITextFieldViewModeAlways]; } вернуть self; }
2. @aavirya, initWithCoder используется для загрузки файла nib. И вы не можете изменить метод. Вы можете использовать «awakeFromNib» или «initWithNibName: bundle» для настройки. Для ясного понимания quora.com / …
Ответ №2:
Вы должны подклассировать UITextField и использовать это. Я не очень хорошо помню Obj-C, но, насколько я помню, это что-то вроде этого в вашем файле .h: interface CustomTextField : UITextField
.