Ale*_*key 5 macos cocoa focus nsmenu nstextfield
我在Mac状态栏中有一个NSMenu,在其中我有一堆NSMenuItems和一个自定义视图.在自定义视图中,我有一个NSTextField.我想在Spotlight菜单中打开菜单时将焦点设置在NSTextField上,以便用户可以直接输入.
我尝试了很多方法,包括:
[myTextField becomeFirstResponder];
Run Code Online (Sandbox Code Playgroud)
和
[myTextField selectText: self];
[[myTextField currentEditor] setSelectedRange:NSMakeRange([[myTextField stringValue] length], 0)];
Run Code Online (Sandbox Code Playgroud)
但它们都不起作用.
谢谢Alex
您的第一个视图处于正确的轨道上,但-becomeFirstResponder实际上并没有使您的视图成为第一个响应者 - 您必须呼吁-[NSWindow makeFirstResponder:]这一点。
谷歌表明它NSMenu实际上有一个附加的窗口。您必须非常小心地使用它,但调用它是安全的makeFirstResponder:。
有关此内容以及如何利用它的更多信息,请访问:https://web.archive.org/web/20171113100008/http ://www.cocoabuilder.com/archive/cocoa/195835-set-focus-on-nsview -in-an-nsmenuitem.html
| 归档时间: |
|
| 查看次数: |
3100 次 |
| 最近记录: |