0

我想要一个NSTextField防止空字符串的,所以我子类化NSTextField并实现了这个方法

-(void) textDidEndEditing:(NSNotification *)aNotification
{
  if([[self stringValue] isEqualToString:@""])
  {
    NSBeep();
   [[self window] makeFirstResponder:self];
  }
  else
  {
    //what goes here
  }
}

当我的新文本字段是窗口中的第二个控件但不是第一个控件时,此方法有效。在这些情况下,即使文本非空,我也无法从 Subclassed 文本字段中跳出

那么,如何撤消该makeFirstResponder方法?或者有没有办法让新的文本字段成为当前的响应者

提前致谢

斯图波特。

4

1 回答 1

0

当您覆盖基本功能时,您只需要回调超级功能即可继续正常行为。

-(void) textDidEndEditing:(NSNotification *)aNotification
{
  if([[self stringValue] isEqualToString:@""])
  {
    NSBeep();
   [[self window] makeFirstResponder:self];
  }
  else
  {
    //what goes here - this:
    [super textDidEndEditing:aNotification];
  }
}
于 2015-03-23T16:05:54.840 回答