使我的NSSecureTextField触发NSButton

时间:2011-03-11 20:59:57

标签: objective-c cocoa macos nstextfield

我有一个NSSecureTextField。如何才能使键盘按下“Enter”按钮时触发“登录”按钮?谢谢!

2 个答案:

答案 0 :(得分:2)

将Login按钮本身的等效键盘设置为\r(返回)可能更好一点。为此,请在Interface Builder中选择按钮,打开属性检查器,然后单击Key Equiv.弹出按钮,然后按下return键,使其如下图所示:

enter image description here

这将使按钮呈蓝色/石墨色,使其成为“默认”按钮。只要按下returnenter键,就会自动“点击”此按钮。

答案 1 :(得分:0)

您也可以尝试此功能。将NSSecureTextField的委托设置为此函数。 当您在NSSecureTextField中按Enter键时它将执行。

- (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]];
        }
    }

}

找到示例here

编辑: 添加了一个deleteBackward案例来处理退格,因为此函数忽略了退格。