On Jul 23, 2016, at 10:12 PM, livinginlosange...@mac.com wrote:
> 
> I have a simple AppDelegate that instantiates an NSWindowController and 
> Window. I have an NSMenuItem that invokes an IBAction on the firstResponder 
> in my xib. This works as expected. When I press command+1, the IBAction 
> fires. However, I specified that my NSWindowController use the 
> ‘NSUserInterfaceValidations’ protocol, but my ‘validateUserInterfaceItem’ is 
> never invoked. Any ideas why?

Is the class that implements validateUserInterfaceItem the same class that 
implements the action method?  The frameworks only ask the target that will be 
sent the action method to validate it.

Also, if your superclass implements validateMenuItem, then you need to override 
that.  For actions that your class handles, you can implement it by calling 
validateUserInterfaceItem if you want to cover all your bases (like toolbar 
items).  For any other action, return what super returns.  The reason is that 
NSMenu checks whether the target implements validateMenuItem before it checks 
if it implements validateUserInterfaceItem.  If it implements the former, it is 
called and the latter is not.

Unfortunately, whether a class implements validateMenuItem is not necessarily 
documented.

Regards,
Ken


_______________________________________________

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