0
//1:
-(void) TextFieldEdit:(CDTextField *)textField{
 [textField setEditable:YES];
}

//2:
 - (void)controlTextDidEndEditing:(NSNotification *)aNotification{
 NSTextField* textField = (NSTextField *)[aNotification object];
 [textField setEditable:NO];
}

我希望在时间 1 设置可编辑,并在时间 2 关闭它。

但是我发现当我发送 setEditable Xcode 时立即调用了 controlTextDidEndEditing:。

为什么?

编辑:第一个方法是通过以下子类方法调用的:

-(void)mouseDown:(NSEvent *)event {
if ([event type]==1)
{
NSInteger key=[event modifierFlags];
if ( key & NSCommandKeyMask)
    {[self.delegate CDTextFieldEdit:self]; }
else
    if (event.clickCount >1)
    {[self.delegate CDTextFieldClicked:self]; return;}

 }
 [super mouseDown:event];
 }
4

0 回答 0