Передача NSTextFiels в качестве аргумента метода? - PullRequest
0 голосов
/ 31 мая 2018

Итак, у меня есть IBOutlet NSSecureTextField с именем * password, и я вызываю метод с анимацией, когда пользователь ввел неправильный пароль:

- (void)shakeWithStrength:(NSInteger)strength {

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
animation.fromValue = [NSValue valueWithPoint:CGPointMake(password.frame.origin.x-strength, password.frame.origin.y)];
animation.toValue = [NSValue valueWithPoint:CGPointMake(password.frame.origin.x+strength, password.frame.origin.y)];

[password.layer addAnimation:animation forKey:@"position"];
}

Я хочу переместить этот метод в его отдельныйкласс, но как я могу передать NSSecureTextField (или что-то еще, например, кнопку) в качестве аргумента?

1 Ответ

0 голосов
/ 31 мая 2018

NSView - это суперкласс NSSecureTextField, NSButton, NSTextField.Таким образом, вы можете использовать NSView в качестве аргумента

- (void)shakeWithStrength:(NSInteger)strength view:(NSView *)view {

    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
    animation.fromValue = [NSValue valueWithPoint:CGPointMake(view.frame.origin.x-strength, view.frame.origin.y)];
    animation.toValue = [NSValue valueWithPoint:CGPointMake(view.frame.origin.x+strength, view.frame.origin.y)];

    [secureTextField.layer addAnimation:animation forKey:@"position"];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...