Undo makeFirstResponder



我想要一个防止空字符串的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];
  }
}

相关内容

  • 没有找到相关文章

最新更新