Я следую за этим video (за исключением ссылки на пользовательский вид в коде не в IB), но я объясню, что происходит. Я создал пользовательский вид, который простирается от UiView. Он создается из файла xib
. Вот фото из файла xib
в InterfaceBuilder:iOS -custom xib-файл, не отображающийся как inputAccessoryView UITextField
Обратите внимание, что владелец файла уже связан с моим пользовательским классом.
Теперь я покажу вам свой собственный класс:
#import "CostcoLoginView.h"
@implementation CostcoLoginView
-(id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
}
return self;
}
-(id)initWithCoder:(NSCoder *)aDecoder{
self=[super initWithCoder:aDecoder];
if(self){
[[NSBundle mainBundle] loadNibNamed:@"CostcoLoginView" owner:self options:nil];
[self addSubview:self.view];
}
return self;
}
@end
А вот заголовочный файл для моего пользовательского вида:
#import <UIKit/UIKit.h>
@interface CostcoLoginView : UIView
@property (strong, nonatomic) IBOutlet UIView *view;
@end
уведомление одно свойство у меня есть: это мнение о том, связан с файлом interfacebuilder xib
, указанным на фотографии выше.
Все выглядит хорошо. Моя цель теперь использовать этот пользовательский UIView как inputAccessoryView
UITextField
У меня есть. Вот неполный код:
usernameField.inputAccessoryView = [[CostcoLoginView alloc] init ];
Почему это не работает? Ничего не появляется. Это из-за того, как я инициализирую пользовательский вид? Когда я проверяю симулятор, ничего не появляется. Я попытался переключить клавиатуру, но ничего не появилось. Остальное приложение работает нормально, но мой пользовательский вид не отображается.