Re: How can I prevent drag-and-drop initiation in an NSTextField
Re: How can I prevent drag-and-drop initiation in an NSTextField
- Subject: Re: How can I prevent drag-and-drop initiation in an NSTextField
- From: Michael Crawford <email@hidden>
- Date: Wed, 17 Aug 2011 21:04:21 -0400
On Aug 17, 2011, at 6:30 PM, Conrad Shultz wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 8/17/11 3:11 PM, Michael Crawford wrote:
>> For those who are interested, here is a simple answer to my
>> original question.
>>
>> @implementation NSTextView (csstest)
>>
>> -
>> (NSDraggingSession*)beginDraggingSessionWithItems:(NSArray*)items
>> event:(NSEvent*)event source:(id<NSDraggingSource>)source { return
>> nil; }
>>
>> That's it.
>
> Please don't do that.
>
> It is usually bad practice to override(*) a method in a category. It
> is highly fragile, particularly because you don't know (and shouldn't
> care) how the frameworks are implemented internally.
Yep, I know.
>
> Furthermore, wherever the category gets picked up, you are overriding
> that method. So when you have some other NSTextView (or subclass
> thereof) that you DO want to support dragging, it will (inexplicably)
> not work.
>
Yep. I know that too. Not applicable. There will be NO dragging.
> Finally, I will note that the particular method you chose is 10.7+
> only, so this presumably won't work at all on Snow Leopard and
> earlier. I recall that you said this is for an internal project, so
> maybe that's OK, but personally I wouldn't jump on a Lion-only
> approach this early on for something which has very good and more
> broadly compatible alternate solutions.
>
Yep. I know. Your right. I agree, not my call.
> I would STRONGLY encourage you to reconsider your approach and perhaps
> try what I previously suggested vis-a-vis the responder chain. Though
> I obviously can't see what you are doing in its entirety, I get the
> impression that you are painting yourself into an uncomfortably small
> corner by - wait for it - "fighting the framework."
>
Not my call, either. I make sure clients have all the info and then do as I'm told. I find I get paid better when I don't ignore their directives.
> *: To be very clear here, I am talking about OVERRIDING a method, not
> the intended use of categories which is to ADD a method.
>
>
> - --
> Conrad Shultz
>
> Synthetiq Solutions
> www.synthetiqsolutions.com
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.7 (Darwin)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iD8DBQFOTED0aOlrz5+0JdURAo0TAJsE3geERkN0qttbpy5gEai/Q+xgMgCdEEv3
> Zss2o6N/tquQp9jNJmVhpsg=
> =cteS
> -----END PGP SIGNATURE-----
Conrad, thank you for your concern. I know you want me and others reading this thread to follow practices that are safe and lead to robust resilient software.
I only wanted to post for completeness. What I was looking for was a specific answer to a technical question. Since no-one had the answer, I posted it. The answer was the API call not the category override, in which it was implemented, FOR TESTING.
Thanks, guys.
-Michael
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden