我想要一个防止空字符串的NSTextField
,所以我将NSTextField
子类化并实现了这个方法
-(void) textDidEndEditing:(NSNotification *)aNotification
{
if([[self stringValue] isEqualToString:@""])
{
NSBeep();
[[self window] makeFirstResponder:self];
}
else
{
//what goes here
}
}
当我的新文本字段是窗口中的第二个控件而不是第一个控件时,这就可以工作了。在这些情况下,即使子类文本字段的文本为非空,我也无法从中调出
那么,如何撤消makeFirstResponder
方法呢?或者有没有一种方法可以使新的文本字段成为当前响应程序
提前感谢
愚蠢。
在重写基函数时,只需要回调super即可继续正常行为。
-(void) textDidEndEditing:(NSNotification *)aNotification
{
if([[self stringValue] isEqualToString:@""])
{
NSBeep();
[[self window] makeFirstResponder:self];
}
else
{
//what goes here - this:
[super textDidEndEditing:aNotification];
}
}