小编Dho*_*lla的帖子

NSTextField输入密钥检测或firstResponder检测

我有两个NSTextField:textFieldUserID和textFieldPassword.

因为textFieldPassword,我有一个代表如下:

- (void)controlTextDidEndEditing:(NSNotification *)aNotification
Run Code Online (Sandbox Code Playgroud)

textFieldPassword有焦点时我会调用此委托,然后按Enter键.这正是我想要的.

我的问题是,controlTextDidEndEditing当textFieldPassword有焦点时我也会被调用,并且我将焦点移动到textFieldUserID(通过鼠标或制表键).这不是我想要的.

我尝试使用controlTextDidChange通知(每按一次按键调用一次)但我无法弄清楚如何检测回车键([textFieldPassword stringValue]不包括回车键).有人可以帮我解决这个问题吗?

我也试图检测是否textFieldUserID是一个firstResponder,但它对我不起作用.这是我试过的代码:

if ( [[[self window] firstResponder] isKindOfClass:[NSTextView class]] &&
    [[self window] fieldEditor:NO forObject:nil] != nil ) {
    NSTextField *field = [[[self window] firstResponder] delegate];
    if (field == textFieldUserID) {
        // do something based upon first-responder status
        NSLog(@"is true");
    }
}
Run Code Online (Sandbox Code Playgroud)

我肯定可以在这里使用一些帮助!

cocoa nstextfield

5
推荐指数
1
解决办法
4200
查看次数

标签 统计

cocoa ×1

nstextfield ×1