我有NSTextField
我添加到自定义视图的视图层次结构中,并设置用户在该自定义视图中单击的位置。
如果文本字段取消第一响应者状态,例如因为用户已在窗口中的另一个NSTextField
内单击,我需要获取其值并再次从视图层次结构中删除它。
我的自定义视图如何通知NSTextField
它拥有的第一响应者状态,而不必为了这个目的而继承此文本字段?
NSTextFieldDelegate
方法control:textShouldEndEditing:
不会这样做,因为只有当用户在文本字段中实际编辑某些内容时才会调用它。如果用户没有在其中进行任何编辑,我还需要隐藏文本字段。
答案 0 :(得分:3)
NSTextField失去焦点可以通过以下方式捕获:
- (void)controlTextDidEndEditing:(NSNotification *)aNotification
答案 1 :(得分:0)
还有一个委托方法可以做同样的事情: -
- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)command
{
if (command==@selector(insertTab:) || (command==@selector(insertBacktab:)))
{
//Your Code
}
return YES;
}
注意: - 它仅适用于tab和backTab键