Заставить мой NSSecureTextField вызвать NSButton - PullRequest
1 голос
/ 11 марта 2011

У меня есть NSSecureTextField. Как сделать так, чтобы при нажатии кнопки «Ввод» на клавиатуре была активирована кнопка «Войти»? Спасибо!

Ответы [ 2 ]

2 голосов
/ 12 марта 2011

Вероятно, лучше просто установить для клавиатуры эквивалент самой кнопки входа в систему \r (возврат).Для этого выберите кнопку в Интерфейсном Разработчике, откройте инспектор атрибутов и нажмите всплывающую кнопку Key Equiv., затем нажмите клавишу return, чтобы она выглядела как на изображении ниже:

enter image description here

Это придаст кнопке синий / графитовый цвет, сделав ее кнопкой «по умолчанию».При нажатии клавиши return или enter эта кнопка будет автоматически нажата.

0 голосов
/ 12 марта 2011

Вы также можете попробовать эту функцию. Установите делегат NSSecureTextField для этой функции. Он будет выполняться, когда вы нажмете клавишу ввода в NSSecureTextField.

- (IBAction)control:(NSControl*)control textView:(NSTextView*)textView doCommandBySelector:(SEL)commandSelector
{

    if (commandSelector == @selector(insertNewline:))
    {

        //Do login stuff
    }
    else if(commandSelector == @selector(deleteBackward:)){
        NSUInteger length = [[secureText stringValue] length];

        if(length != 0) 
        {
            [secureText setStringValue:[[secureText stringValue] substringToIndex: length-1]];
        }
    }

}

Найденный пример здесь

EDIT: Добавлен случай deleteBackward для обработки возврата, так как эта функция игнорирует возврат.

...