What happens if you turn on full keyboard access?

Sent from my iPhone

> On 2015/03/10, at 18:45, Dragan Milić <mi...@mac.com> wrote:
> 
> My previous message sent to the list apparently didn’t get admin approval, 
> there were two attached images showing standard alarm panels with buttons 
> which don’t draw their focus ring. Therefore, in this message I’ll combine 
> answers to both Kyle and Graham.
> 
>> On pon 09.03.2015., at 17.48, Kyle Sluder wrote:
>> 
>> I'd start by looking at that -[NSView(NTExtensions) drawFocusRing] method. 
>> If you comment it out, what happens?
> 
> No changes :-(  I even went that far to remove the category completely and 
> ignore all compiler warnings where added methods were used. Now, that would 
> normally throw exceptions, but before even loading any application window and 
> using any view requiring added category methods, the application shows two 
> alert panels (one by one, attached images of those panels is the reason my 
> previous message didn’t get through ), depending on current user preferences. 
> That enables me to see buttons' behaviour even before any exception is 
> thrown. Here is the link to the image of the first alert panel:
> 
> http://media.cocoatech.com/first_alert.png
> 
> What’s interesting here is that, as you can see, the alert’s 
> suppressionButton checkbox DOES draw its focus ring, but other two buttons 
> don’t! Believe my words, if I use tab/shift+tabs to change focus on them, 
> they are focused (I can then activate them with the space), but the focus 
> ring is not drawn, only the checkbox gets it correctly.
> 
> Immediately after that first alert is dismissed, the second one appears, here 
> is the link:
> 
> http://media.cocoatech.com/second_alert.png
> 
> With this one, even the focused suppressionButton checkbox doesn’t draw its 
> focus ring. Other two buttons don’t too. And all this is with the NSView 
> category completely removed. There are other NSView or NSControl or NSButton 
> or NSButtonCell categories defined. The code defining both alarm panels is 
> pretty standard, I can post it if necessary.
> 
> Everything worked well in Mavericks, I’ve got no idea what happened in the 
> meanwhile.
> 
>> For safety, you really ought to be prefixing all of your category methods 
>> with some unique-to-you prefix.
> 
> Yeah. As I’ve mentioned already, this is not my code, it was first created 
> back in 2002 and until this problem I haven’t even looked into it.
> 
> 
>> On uto 10.03.2015., at 00.44, Graham Cox wrote:
>> 
>> In Xcode, add OBJC_PRINT_REPLACED_METHODS (value: YES) to your scheme's 
>> environment variables. Then all of the methods replaced by categories are 
>> logged when your app launches. While the list can be long and might take 
>> some time to go through, it will show you if any of your category methods 
>> are replacing anything - it's a much more reliable way to check than doing a 
>> class dump.
> 
> Thanks for the suggestion Graham, I’ll do that. It’s be interesting to see if 
> and what methods are replaced, although I don’t think it’ll solve this 
> particular problem. I mentioned above it still happens even with the NSView  
> category completely removed.
> 
>> If you're not using those category methods, remove them. Most of them seem 
>> to be convenience methods that are possible "nice to haves" rather than 
>> vital to use NSView. Some appear to me to wholly misunderstand how a view 
>> stack (involving semi-transparancy for example) is actually drawn. Others 
>> are things that could be useful in particular circumstances but you probably 
>> wouldn't want to apply to every view your app ever instantiates including 
>> framework ones. For those custom views of yours that use these things, 
>> relocate that code to the custom view. It may mean a small duplication of 
>> code across a few different views, but it will be a lot safer than swapping 
>> out NSView wholesale. NSView just may be Cocoa's single most complicated 
>> class (any other contenders?). As a result, you probably can't foresee all 
>> possible effects of adding a category on it.
> 
> As mentioned above, I’ve never looked into that code before this problem 
> started. Now that I do, I’ll definitely do something about it and apply your 
> suggestions.
> 
> -- 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/dangerwillrobinsondanger%40gmail.com
> 
> This email sent to dangerwillrobinsondan...@gmail.com

_______________________________________________

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