让我的 NSSecureTextField 触发 NSButton

发布于 2024-10-21 19:54:06 字数 63 浏览 2 评论 0原文

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

I have an NSSecureTextField. How can I make it so that when the 'Enter' button is pressed on the keyboard, the 'login' button is triggered? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风蛊 2024-10-28 19:54:06

将登录按钮本身的键盘等效项设置为 \r(返回)可能是一个更好的主意。为此,请在 Interface Builder 中选择该按钮,打开属性检查器,然后单击 Key Equiv. 弹出按钮,然后按 return 键,使其看起来像下图:

在此处输入图像描述

这将为按钮提供蓝色/石墨色,使其成为“默认”按钮。每当按下 returnenter 键时,都会自动“单击”此按钮。

It's probably a better idea to just set the keyboard equivalent of the Login button itself to \r(return). To do that, select the button in Interface Builder, open the attributes inspector, and click in the Key Equiv.popup button, then press the return key so that it looks like the image below:

enter image description here

This will give the button the blue/graphite color making it the "default" button. Whenever the return or enter key is pressed, this button will be "clicked" automatically.

允世 2024-10-28 19:54:06

您也可以尝试一下这个功能。将 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]];
        }
    }

}

找到示例此处

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

You can also try this function. Set the delegate of the NSSecureTextField to this function.
It will execute when you hit enter in the 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]];
        }
    }

}

Found example here

EDIT:
Added a deleteBackward case to handle backspace since this function ignores backspace.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文