Wie erkennt man, ob NSTextField den Fokus hat oder ob der Inhalt ausgewählt ist?

Ich habe ein NSTextField in einer NSTableCellView und ich möchte ein Ereignis, das mich darüber informiert, wenn mein NSTextField den Fokus zum Deaktivieren mehrerer Schaltflächen hat. Ich habe diese Methode gefunden:

-(void)controlTextDidBeginEditing:(NSNotification *)obj{
    NSTextField *textField  = (NSTextField *)[obj object];

    if (textField != _nombreDelPaqueteTextField) {
        [_nuevaCuentaActivoButton   setEnabled:FALSE];
        [_nuevaCuentaPasivoButton   setEnabled:FALSE];
        [_nuevaCuentaIngresosButton setEnabled:FALSE];
        [_nuevaCuentaEgresosButton  setEnabled:FALSE];
    }
}

, aber es wird ausgelöst, sobald mein Textfeld bearbeitet wird, da dies besagt, dass die Schaltflächen deaktiviert werden sollen, wenn ich den Fokus auf das Textfeld lege, und nicht, wenn ich bereits mit der Eingabe von @ begonnen hab

BEARBEITEN Ich werde meinen Code basierend auf der Hilfe von Joshua Nozzi einfügen, es funktioniert immer noch nicht

MyNSTextField.h

#import <Cocoa/Cocoa.h>
@class MyNSTextField;

@protocol MyNSTextFieldDelegate

@optional -(BOOL)textFieldDidResignFirstResponder:(NSTextField *)sender;
@optional -(BOOL)textFieldDidBecomeFirstResponder:(NSTextField *)sender;

@end

@interface MyNSTextField : NSTextField

@property (strong, nonatomic)           id <MyNSTextFieldDelegate> cellView;

@end

MyNSTextField.m

#import "MyNSTextField.h"

@implementation MyNSTextField

- (BOOL)becomeFirstResponder
{
    BOOL status = [super becomeFirstResponder];
    if (status)

        [self.cellView textFieldDidBecomeFirstResponder:self];
    return status;
}

- (BOOL)resignFirstResponder
{
    BOOL status = [super resignFirstResponder];
    if (status)
        [self.cellView textFieldDidResignFirstResponder:self];
    return status;
}

@end

Auf meinem Viewcontroller EdicionDeCuentasWC.m

#import "MyNSTextField.h"


@interface EdicionDeCuentasWC ()<NSTableViewDataSource, NSTableViewDelegate, NSControlTextEditingDelegate, NSPopoverDelegate, MyNSTextFieldDelegate>
@end


@implementation EdicionDeCuentasWC
#pragma mark MyNSTextFieldDelegate
-(BOOL)textFieldDidBecomeFirstResponder:(NSTextField *)sender{
    NSLog(@"textFieldDidBecomeFirstResponder");
    return TRUE;
}

-(BOOL)textFieldDidResignFirstResponder:(NSTextField *)sender{
    NSLog(@"textFieldDidResignFirstResponder");
    return TRUE;
}
#pragma mark --
@end

Es ist wichtig zu sagen, dass im visuellen Editor bereits alle meine NSTextFields in die MyNSTextField-Klasse geändert wurden und ein Delegat an den Eigentümer meiner Datei (EdicionDeCuentasWC) festgelegt wurde.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage