撤消 makeFirstResponder
Undo makeFirstResponder
我想要一个 NSTextField
来防止空字符串,所以我将 NSTextField
子类化并实现了这个方法
-(void) textDidEndEditing:(NSNotification *)aNotification
{
if([[self stringValue] isEqualToString:@""])
{
NSBeep();
[[self window] makeFirstResponder:self];
}
else
{
//what goes here
}
}
当我的新文本字段是 window 中的第二个控件而不是第一个控件时,此方法有效。在那些情况下,即使其文本非空,我也无法跳出子类文本字段
那么,如何撤消 makeFirstResponder
方法?或者有没有办法让新的文本字段成为 current responder
提前致谢
笨蛋。
当您重写基本函数时,您应该只需要回调 super 以使正常行为继续。
-(void) textDidEndEditing:(NSNotification *)aNotification
{
if([[self stringValue] isEqualToString:@""])
{
NSBeep();
[[self window] makeFirstResponder:self];
}
else
{
//what goes here - this:
[super textDidEndEditing:aNotification];
}
}
我想要一个 NSTextField
来防止空字符串,所以我将 NSTextField
子类化并实现了这个方法
-(void) textDidEndEditing:(NSNotification *)aNotification
{
if([[self stringValue] isEqualToString:@""])
{
NSBeep();
[[self window] makeFirstResponder:self];
}
else
{
//what goes here
}
}
当我的新文本字段是 window 中的第二个控件而不是第一个控件时,此方法有效。在那些情况下,即使其文本非空,我也无法跳出子类文本字段
那么,如何撤消 makeFirstResponder
方法?或者有没有办法让新的文本字段成为 current responder
提前致谢
笨蛋。
当您重写基本函数时,您应该只需要回调 super 以使正常行为继续。
-(void) textDidEndEditing:(NSNotification *)aNotification
{
if([[self stringValue] isEqualToString:@""])
{
NSBeep();
[[self window] makeFirstResponder:self];
}
else
{
//what goes here - this:
[super textDidEndEditing:aNotification];
}
}