代码之家  ›  专栏  ›  技术社区  ›  bsabiston

mac nstextfield不会辞职firstresponder

  •  0
  • bsabiston  · 技术社区  · 7 年前

    我有一个窗口,里面有一些nstextfields。当我单击其中一个并编辑值并按回车键时,我希望焦点回到以前的状态。我不希望文本字段周围出现蓝圈,也不希望在该文本字段中输入更多的按键。我本以为这会自动发生。

    我试过了,但都没用

     sender.resignFirstResponder()
    
     sender.window?.makeFirstResponder(nil)
    
     InspectorWindowController.window?.makeFirstResponder(nil)
    
     AnotherWindowController.window?.becomeFirstResponder()
    

    我在与文本字段关联的IBaction的末尾执行这些操作。也许我必须从别的地方去做?

    谢谢

    1 回复  |  直到 7 年前
        1
  •  0
  •   bsabiston    7 年前

    我知道了。我想发送的操作正在另一个线程上发生。所以您必须使用分派异步调用makefirstresponder。

    DispatchQueue.main.async { //omg
        sender.window?.makeFirstResponder(nil)
    }
    
    推荐文章