【发布时间】:2011-06-09 07:15:31
【问题描述】:
我有两个NSTextFields:textFieldUserID 和 textFieldPassword。
对于textFieldPassword,我有一个代表如下:
- (void)controlTextDidEndEditing:(NSNotification *)aNotification
当textFieldPassword 获得焦点并且我按下回车键时,会调用此委托。这正是我想要的。
我的问题是当textFieldPassword 具有焦点并且我将焦点移动到textFieldUserID(通过鼠标或Tab 键)时,controlTextDidEndEditing 也会被调用。这不是我想要的。
我尝试使用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");
}
}
我当然可以在这里使用一些帮助!
【问题讨论】:
标签: cocoa nstextfield