Objective c 如何在单击按钮时从文本字段中删除光标?

Objective c 如何在单击按钮时从文本字段中删除光标?,objective-c,cocoa,nstextfield,Objective C,Cocoa,Nstextfield,我正在尝试做一个简单的任务: 我有一个可编辑的文本字段,窗口上有两个按钮(标题:使可编辑/使不可编辑)。想法是:当用户单击“使可编辑”按钮时,文本字段应变为可编辑,当用户单击“使不可编辑”按钮时,文本字段应变为不可编辑 在“使不可编辑”操作中,我执行以下操作: [myTextField setSelectable:NO]; [myTextField setEditable:NO]; 在“使可编辑”的操作中,我这样做: [myTextField setSelectable:YES]; [myTe

我正在尝试做一个简单的任务:

我有一个可编辑的文本字段,窗口上有两个按钮(标题:使可编辑/使不可编辑)。想法是:当用户单击“使可编辑”按钮时,文本字段应变为可编辑,当用户单击“使不可编辑”按钮时,文本字段应变为不可编辑

在“使不可编辑”操作中,我执行以下操作:

[myTextField setSelectable:NO];
[myTextField setEditable:NO];
在“使可编辑”的操作中,我这样做:

[myTextField setSelectable:YES];
[myTextField setEditable:YES];
问题是:

当myTextField中没有光标或有光标但用户没有在其中键入任何内容并单击“使其不可编辑”时,它工作正常,然后myTextField变为不可编辑,但当它有光标且用户在其中键入内容后单击“使其不可编辑”时,他/她仍然可以编辑myTextField

对于它的解决方案,我尝试在用户单击“使不可编辑”按钮后立即从myTextField中删除光标,方法是在可选和可编辑语句之前添加以下行:

  • [someOtherTextField选择文本:self]

  • [[nsrunlop currentRunLoop]
    performSelector:@selector(selectText:)
    其他文本字段
    论点:自我
    订单:9999
    模式:[NSArray arrayWithObject:NSDefaultRunLoopMode]]

  • [someOtherTextField成为第一响应者]

  • 但没有一个对我有用:(


    有人能为它提出一些解决方案吗?

    成为第一响应者的文档说

    使用NSWindow makeFirstResponder:方法(而不是此方法)使对象成为第一响应者。切勿直接调用此方法

    我不确定隐藏的文本字段是否可以成为第一响应者,因此请尝试:

    
    [[myTextField窗口]MakeffirstResponder:nil]
    

    作为第一响应者的
    文档

    使用NSWindow makeFirstResponder:方法(而不是此方法)使对象成为第一响应者。切勿直接调用此方法

    我不确定隐藏的文本字段是否可以成为第一响应者,因此请尝试:

    
    [[myTextField窗口]MakeffirstResponder:nil]
    

    在swift 5中

    使用下面的代码

     password.window?.makeFirstResponder(nil)
    
    斯威夫特5

    使用下面的代码

     password.window?.makeFirstResponder(nil)
    

    someOtherTextField在本例中隐藏!someOtherTextField在本例中隐藏!