Как я могу быть замечен, когда подкласс NSSecureTextField получает фокус каждый раз?
Я подкласс NSSecureTextField
и переопределено -(BOOL)becomeFirstResponder
, но это работает только тогда, когда мой заказ NSSecureTextField
получить фокус в первый раз.
1 ответ
Я думаю, что это не проблема NSSecureTextField. Это проблема того, как сфокусироваться на контроле.
Создайте новый проект и перетащите только два NSSecureTextField на ваш вид. Установите пользовательский класс одного из них в MySecureTextField, определенный ниже, и оставьте другой по умолчанию. Запустите проект и измените фокус между двумя NSSecureTextField, вы увидите "Get focus", напечатанный, когда пользовательский фокус получится каждый раз.
Вернитесь к своей программе, пожалуйста, проверьте, не потерял ли фокус NSSecureTextField? Вызывается ли resignFirstResponser?
#import "MySecureTextField.h"
@implementation MySecureTextField
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect
{
// Drawing code here.
}
- (BOOL)becomeFirstResponder
{
NSLog(@"Get focus");
return [super becomeFirstResponder];
}
@end