Re: [IB] Cells vs Controls in the Library
Re: [IB] Cells vs Controls in the Library
- Subject: Re: [IB] Cells vs Controls in the Library
- From: Christiaan Hofman <email@hidden>
- Date: Tue, 24 Aug 2010 12:05:27 +0200
On Aug 24, 2010, at 11:21, Stéphane Sudre wrote:
>
> On Aug 23, 2010, at 8:41 PM, Christiaan Hofman wrote:
>
>>
>> On Aug 23, 2010, at 15:35, Stéphane Sudre wrote:
>>
>>> Stupid question:
>>>
>>> Why is there both cell and control instances of the "same" objects in the Library window of Interface Builder?
>>>
>>>
>>> For instance, you have a Check Box cell and a Check Box control.
>>>
>>
>> Uhm, those are not the same objects, they are different objects. One is a cell (NSButtonCell), the other is a control (NSButton). If you don't understand what the difference between a cell and a control is, you really need to read the basic Cocoa docs (in particular the "cell and control programming topics for cocoa.")
>
> You mean cells are not where you keep inmates?
>
>>> Wouldn't it be better to just have a Check Box object and have IB figuring out which class will be really used depending on the target of the drop (*)?
>>>
>>
>> Why?
>
> To remove some clutter from the Library so that you can find the object you're looking for faster.
You would not get that. The cells are generally setup in a far different way than the controls, because it should be appropriate for a table rather than a stand-alone control. So you would still need two objects. Gain nothing, lose a lot of information, and in fact confuse things because you now lose the context of cells when you need a cell, but get a larger number of "controls or cells."
>> It would also complicate IB a lot, as the objects then would not know what to accept.
>
> As a matter of fact, they or actually the appropriate layout controller already know what they can accept or not. Just try to drop a NSTableView on a NSButton.
>
Well, that's my point. The drop target knows what to accept because it is told what to expect in the drop and therefore can choose whether to accept. Now you're saying to confuse and remove the information about what it's getting from the drop (is it a cell? is it a control? it's superman!) and it won't be able to make that choice anymore (there's no NSMaybeCellOrControl object, they're in very different parts of the object hierarchy, and see my remark below).
>> It is generally a very bad idea for generic operations (like dropping an objects) to require knowledge about specific peculiarities (like this thing about controls and cells.)
>
> Last time I checked, it was possible to add multiple representations of an object in the pasteboard for a drag operations. So would there be something really bad about having for instance both the cell and the control representations in the pasteboard and then let the layout controller decide which one should be used?
>
Because the layout controller may not be able to make the choice, as I said below. Moreover it's not supported by the generic way the IB plugins work.
>> Moreover, the drop target could in fact accept both controls and cells, and you'd be screwed, for instance when you want it to be a top level object (which is really not such a weird thing.)
>
> I would be interested by a good example. For instance, AFAIK, you would need to use a custom view said to be a NSImageView to have a NSImageView accepts a NSButton as a subview in IB.
>
>
A top level object that can be swapped in using code. There are many cases where this may be useful. Generally, if you don't use it it does not mean it doesn't exist or is not useful.
Christiaan
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden