当用户完成编辑时,我正试图让我的文本字段重新响应第一响应者,就像他们点击输入一样。委托方法被调用,但我现在所做的不起作用,这样做的正确方法是什么?
- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor
{
[fieldEditor resignFirstResponder];
return YES;
}
答案 0 :(得分:22)
来自-resignFirstResponder方法的文档:
使用NSWindow makeFirstResponder: 方法,而不是这种方法,来制作一个 反对第一响应者。决不 直接调用此方法。
此代码应该这样做:
[myWindow makeFirstResponder:nil];
答案 1 :(得分:7)
- (void)controlTextDidEndEditing:(NSNotification *)obj {
[self.window makeFirstResponder:view];
}
其中"查看"是NSTextView控件的父NSView。
答案 2 :(得分:0)
我相信您正在寻找NSControl委托方法:
- (void)controlTextDidEndEditing:(NSNotification *)notif
在NSTextField
代表中实施此方法(在IB中轻松设置)。
然后您要求更改响应者,例如
[self.window selectNextKeyView:self]
应该有用。
答案 3 :(得分:-4)
我不是iPhone编程方面的专家,但你需要实现的方法是“textFieldShouldReturn”实现如下:
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
[theTextField resignFirstResponder];
return YES;
}