我有两个NSTextField:textFieldUserID和textFieldPassword。
对于textFieldPassword,我有一个如下的委托:
- (void)controlTextDidEndEditing:(NSNotification *)aNotification当textFieldPassword具有焦点并且我按回车键时,将调用此委托。这正是我想要的。
我的问题是,当textFieldPassword有焦点并且我将焦点移动到textFieldUserID (通过鼠标或Tab键)时,controlTextDidEndEditing也会被调用。这不是我想要的。
我尝试使用controlTextDidChange通知(每次按键都会调用一次),但我不知道如何检测Enter键( [textFieldPassword stringValue]不包括Enter键)。有没有人能帮我解决这个问题?
我还试图检测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");
}
}我真的需要一些帮助!
发布于 2014-01-21 16:23:54
[passwordTextFieldCell setTarget:self];
[passwordTextFieldCell setAction:@selector(someAction:)];
- (void) someAction{
//handle
}https://stackoverflow.com/questions/6289336
复制相似问题