1

我有一个NSTextField添加到自定义视图的视图层次结构中并设置用户在该自定义视图内单击时的位置。

如果文本字段退出第一响应者状态,例如因为用户NSTextField在窗口中单击了另一个,我需要获取它的值并再次从视图层次结构中删除它。

我的自定义视图如何得到通知NSTextField它拥有辞职的第一响应者状态,而不必仅仅为了这个单一目的而对该文本字段进行子类化?

NSTextFieldDelegate方法control:textShouldEndEditing:不会执行,因为它仅在用户实际编辑文本字段中的内容时才被调用。如果用户没有在其中进行任何编辑,我还需要隐藏文本字段。

4

2 回答 2

3

NSTextField 失去焦点可以通过以下方式捕获:

- (void)controlTextDidEndEditing:(NSNotification *)aNotification
于 2012-11-20T04:05:56.707 回答
0

还有一种委托方法可以做同样的事情:-

- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)command
{
    if (command==@selector(insertTab:) || (command==@selector(insertBacktab:)))
    {
      //Your Code
    }
    return YES;
}

注意:- 它仅适用于 tab 和 backTab 键

于 2014-12-14T04:07:39.637 回答