Hi all,

I’m developing a tiny application, which has an NSStatusItem instance with a 
menu. One for the menu items of the menu has a custom view, which is either an 
NSTextField instance, or in can even be an NSView instance containing the 
NSTextField instance (the latter approach enables me to add some borders around 
the text field). However, I have  problems setting focus on that text field. 
Clicking the text field does nothing and if I click on it repeatedly a couple 
of times, the application hangs (and eventually crashes), getting into the 
infinite loop of -[NSMenuWindowManagerWindow setFirstResponder:] messages, even 
stealing keyboard events from all other applications while hanging!

In essence, I can’t set focus on the text field nor type anything into it. I 
had this problem on older versions of macOS (Catalina and older), but after 
clicking on the text field a couple of times, it would get the focus 
eventually. On Big Sur and later, it’s not possible, and clicking on the text 
field repeatedly hangs and crashes the application.

This issue isn’t related to the menu being attached to the NSStatusItem, it 
also happens in the main and/or contextual menu within the application. I’d 
eventually want to set the focus on the text field programmatically each time 
the menu appears (so a user can start typing immediately, something like 
Spotlight used to do in the older versions of macOS), but that’s not possible 
either.

The only similar attempt I could find is dated back in 2008 on this very list, 
you can find it here:

 https://lists.apple.com/archives/cocoa-dev/2008/Jan/msg00138.html

But even at that time, the problem was hard to solve.

I know NSMenu has its own track of the event loop and I assume that’s what 
causes the problem. Action-On-Click oriented controls (NSButton, 
NSPopUpButton…) work fine embedded in an NSMenuItem instance, but not 
NSTextField. I wonder if what I want to achieve is even possible. If so, I’d 
really appreciate if someone can offer the solution or point me in the right 
direction for further investigation and solution attempts.

Cheers,
-- Dragan
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to