Fixed: subviews in cib did not receive view(Will/Did)MoveToSuperview:

In Cocoa, viewWillMoveToSuperview: and viewDidMoveToSuperview: are called when views are instantiated from code or from a nib.

Previously in Cappuccino, when a view was instantiated from a cib, the _subviews of the view were directly set from the decoded subview array. This short-circuited all of the normal notifications a view receives when added to a superview, including viewWillMoveToSuperview: and viewDidMoveToSuperview:. As a result, some views that override these methods, such as CPSearchField, were not set up correctly when instantiated from a cib.

With this commit, subviews instantiated from a cib are manually added to their superview, thus ensuring they go through the same cycle as views instantiated from code, and ensuring that viewWillMoveToSuperview: and viewDidMoveToSuperview: are called.

Closes #1699
This commit is contained in:
Aparajita Fishman
2013-02-25 20:09:18 -05:00
parent 887421c9fa
commit 471641c228
2 changed files with 15 additions and 1 deletions
+2
View File
@@ -623,6 +623,7 @@ var concat = Array.prototype.concat,
for (; index < count; ++index)
{
aFunction([self objectAtIndex:index], index, shouldStopRef);
if (shouldStop)
return;
}
@@ -648,6 +649,7 @@ var concat = Array.prototype.concat,
for (; index !== stop; index += increment)
{
aFunction([self objectAtIndex:index], index, AT_REF(shouldStop));
if (shouldStop)
return;
}