{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410 {\fonttbl\f0\froman\fcharset77 Times-Roman;\f1\fswiss\fcharset77 Helvetica-Bold;\f2\fnil\fcharset77 Monaco; \f3\fmodern\fcharset77 Courier;\f4\froman\fcharset77 Times-Bold;\f5\froman\fcharset77 Times-Italic; } {\colortbl;\red255\green255\blue255;\red0\green0\blue255;} \pard\ql\qnatural \f0\fs24 \cf0 Version 1.1.4 Copyright \'a92004-2006 by Rainer Brockerhoff. Some Rights Reserved under the Creative Commons Attribution License, version 2.5, and/or the MIT License.\ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \ \ \ \pard\tx4880\li4880\fi-2780\ql\qnatural \cf0 \ \pard\li2100\ql\qnatural \f1\b\fs56 \cf0 RBSplitSubview\ \pard\tx4880\li4880\fi-2780\ql\qnatural \f0\b0\fs16 \cf0 \ \ \ \pard\tx4880\li4880\fi-2780\ql\qnatural \fs28 \cf0 \ \f1\b Inherits From:\ \f0\b0 NSView : NSResponder : NSObject\ \fs20 \ \f1\b\fs28 Conforms To: \f0\b0 \ NSCoding (NSResponder)\ NSObject (NSObject)\ \fs20 \ \f1\b\fs28 Declared In: \f0\b0 \ RBSplitSubview.h\ \pard\li1360\ql\qnatural \f1\b\fs16 \cf0 \ \ \ \fs36 Class Description\ \fs16 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \f0\b0\fs28 \cf0 RBSplitSubview is the basic view used for containing each \'d2split\'d3 of a RBSplitView. RBSplitView itself is a subclass of RBSplitSubview, to allow for direct nesting, so you must read the descriptions of both classes recursively ;-).\ You should never use RBSplitSubviews outside of a RBSplitView; conversely, a RBSplitView will accept only RBSplitSubviews as direct subviews, or other RBSplitViews. In the latter case, the nested RBSplitView will usually be \'d2coupled\'d3 to the containing RBSplitView, but you can choose to turn coupling off. See more details about coupling in the RBSplitView description.\ Normally, you will set up size constraints and other attributes for a RBSplitSubview in Interface Builder and never change these programmatically, although you can do so.\ RBSplitSubviews are different from normal NSViews in that, instead of height and width, they have a \'d2dimension\'d3 which is measured along the containing RBSplitView\'d5s orientation. The \'d2other\'d3 size is always set automatically to cover the entire RBSplitView, so there\'d5s no way to manipulate it. For that reason, there\'d5s no sense using the automatic view resizing facilities; it\'d5s all handled by the containing RBSplitView.\ You can set size constraints \'d1\'caminimum and maximum dimensions, in pixels \'d1\'caand allow or not the RBSplitSubview to \'d2collapse\'d3 to zero dimension. A collapsed RBSplitSubview is actually shrunk beyond its minimum dimension, but without affecting its own subviews. Collapsing and expanding can be done programmatically or with mouse gestures. You can usually count on RBSplitSubviews staying within the size constraints as far as their own subviews are concerned.\ Subclassing either RBSplitSubview or RBSplitView should never be necessary, as most special behavior should be achievable either by delegate methods or by modifying the source code directly. Read the header comments for more details.\ RBSplitSubviews are not flipped, although RBSplitViews are. This shouldn't affect you at all.\ Some common NSView method calls \'d1 mostly those related to resizing \'d1 make no sense for RBSplitSubviews, and so you should avoid calling them. In particular, \f2\fs22 \cf2 - setFrame: \f0\fs28 \cf0 , \f2\fs22 \cf2 - setFrameOrigin: \f0\fs28 \cf0 , \f2\fs22 \cf2 - setFrameSize: \f0\fs28 \cf0 , \f2\fs22 \cf2 - setAutoresizingMask: \f0\fs28 \cf0 , and related methods will either have no effect or mess things up. Always rely on the containing RBSplitView to do the right thing.\ \pard\tx4880\li4880\fi-2780\ql\qnatural \cf0 \ \pard\li1360\ql\qnatural \f1\b\fs16 \cf0 \ \fs36 Instance Variables\ \pard\tx2480\tx8000\tx10140\li2100\ql\qnatural \f0\b0\fs28 \cf0 \ \pard\tx2700\tx3240\tx3780\tx4320\tx4860\tx5400\tx5940\tx6480\li2100\ql\qnatural \cf0 All instance variables should be considered private; subclasses should use the corresponding accessor methods.\ \pard\tx6120\li5940\fi-3840\ql\qnatural \f1\b\fs16 \cf0 \ \pard\tx4880\li4880\fi-2780\ql\qnatural \f0\b0\fs28 \cf0 \ \pard\li1360\ql\qnatural \f1\b\fs16 \cf0 \ \fs36 Constants\ \pard\tx2480\tx8000\tx10140\li2100\ql\qnatural \f0\b0\fs28 \cf0 \ \pard\tx2700\tx3240\tx3780\tx4320\tx4860\tx5400\tx5940\tx6480\li2100\ql\qnatural \cf0 The following constants of type \f3\fs26 RBSSubviewStatus \f0\fs28 are used to return the status of a RBSplitSubview:\ \pard\tx2700\tx3240\tx3780\tx4320\tx4860\tx5400\tx5940\tx6480\li2100\ql\qnatural \f3\fs26 \cf0 RBSSubviewExpanding \f0\fs28 the subview is being expanded with animation \f3\fs26 \ RBSSubviewCollapsing \f0\fs28 the subview is being collapsed with animation \f3\fs26 \ RBSSubviewNormal \f0\fs28 the subview is not collapsed \f3\fs26 \ RBSSubviewCollapsed \f0\fs28 the subview is collapsed.\ See \f2\fs22 \cf2 - status \f0\fs28 \cf0 . \f1\b\fs16 \ \pard\li1360\ql\qnatural \cf0 \ \ \fs36 Method Types\ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \f0\b0\fs16 \cf0 \ \pard\tx6120\li5940\fi-3840\ql\qnatural \fs28 \cf0 Creating instances\ \f2\fs22 \cf2 - initWithFrame: \f0\fs28 \cf0 \ \pard\tx6120\tx9000\li5940\fi-3840\ql\qnatural \cf0 \ \pard\tx6120\li5940\fi-3840\ql\qnatural \cf0 Identifying instances\ \f2\fs22 \cf2 - setTag:\ - tag\ - setIdentifier:\ - identifier \f0\fs28 \cf0 \ \ Relating to RBSplitView\ \f2\fs22 \cf2 - splitView\ - asSplitView\ - couplingSplitView\ - coupledSplitView\ - outermostSplitView\ - isCoupled\ - setCoupled: \f0\fs28 \cf0 \ \f2\fs22 \cf2 - splitViewIsHorizontal\ \f0\fs28 \cf0 \ Counting and positioning\ \f2\fs22 \cf2 - numberOfSubviews\ - setPosition:\ - position\ \f0\fs28 \cf0 \ Dimensions and constraints\ \f2\fs22 \cf2 - dimension\ - setDimension\ - changeDimensionBy:mayCollapse:move: \f0\fs28 \cf0 \ \f2\fs22 \cf2 - minDimension\ - maxDimension\ - setMinDimension:andMaxDimension:\ \f0\fs28 \cf0 \ Collapsing, expanding and hiding\ \f2\fs22 \cf2 - isCollapsed\ \pard\tx2700\tx3240\tx3780\tx4320\tx4860\tx5400\tx5940\tx6480\li2100\ql\qnatural \cf2 - status\ \pard\tx6120\li5940\fi-3840\ql\qnatural \cf2 - canCollapse\ - setCanCollapse:\ - collapse\ - expand\ - canShrink\ - canExpand\ - collapseWithAnimation\ - expandWithAnimation\ - collapseWithAnimation:withResize:\ - expandWithAnimation:withResize:\ - setHidden: \f0\fs28 \cf0 \ \pard\li1360\ql\qnatural \f1\b\fs16 \cf0 \ \ \fs36 Instance Methods\ \fs16 \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \fs28 \cf0 asSplitView\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (RBSplitView*) \f4\b asSplitView \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns self if the receiver is a RBSplitView, nil if not. Convenient for testing or calling methods.\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \fs28 \cf0 canCollapse\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (BOOL) \f4\b canCollapse \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns YES if the receiver can be collapsed, NO otherwise. However, even if this returns YES, you still may be unable to collapse the receiver if all other views already are collapsed. See \f2\fs22 \cf2 - collapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - expand \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCollapsed \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \fs28 \cf0 canExpand\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (BOOL) \f4\b canExpand \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns YES if the receiver can still expand, meaning that its dimension is below the set maximum. However, even if this returns YES, you still may be unable to expand the receiver because of constraints on other subviews. See \f2\fs22 \cf2 - collapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - expand \f0\fs28 \cf0 , \f2\fs22 \cf2 - canExpand \f0\fs28 \cf0 , \f2\fs22 \cf2 - canShrink \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCollapsed \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \fs28 \cf0 canShrink\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (BOOL) \f4\b canShrink \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns YES if the receiver can still shrink, meaning that its dimension is above the set minimum, or that it can be collapsed. However, even if this returns YES, you still may be unable to shrink or collapse the receiver because of constraints on other subviews. See \f2\fs22 \cf2 - collapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - expand \f0\fs28 \cf0 , \f2\fs22 \cf2 - canExpand \f0\fs28 \cf0 , \f2\fs22 \cf2 - canShrink \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCollapsed \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx7140\li2480\fi-380\ql\qnatural \fs28 \cf0 changeDimensionBy:mayCollapse:move:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (float) \f4\b changeDimensionBy: \f0\b0 (float) \f5\i increment \f4\i0\b mayCollapse: \f0\b0 (BOOL) \f5\i mayCollapse \f4\i0\b move: \f0\b0 (BOOL) \f5\i move \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Tries to change the receiver\'d5s dimension by \f5\i increment \f0\i0 , which can be positive or negative. This is usually called on pairs of subviews whenever Pass YES in \f5\i mayCollapse \f0\i0 to allow collapsing of the receiver if the change is large enough; pass YES in \f5\i move \f0\i0 only when you're resizing the trailing (that is, right- or bottommost) subview of the pair. (This will reposition the subview so its trailing edge remains fixed). However, constraints on the receiver or on neighboring subviews may alter the actual change, so it will return the actual amount the receiver\'d5s dimension changed.\ Usually, this call should be balanced by changing another subview\'d5s dimension by the negative of the returned value, or by changing the containing RBSplitView\'d5s size (you should pass NO in \f5\i move \f0\i0 in the latter case). Otherwise, the actual dimension of the receiver will probably change after calling \f2\fs22 \cf2 - adjustSubviews \f0\fs28 \cf0 on the containing RBSplitView. See \f2\fs22 \cf2 - setDimension: \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - dimension \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \cf0 collapse\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (float) \f4\b collapse \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Will collapse the receiver, if it can be collapsed and was expanded. As a convenience, it returns the negative of the receiver\'d5s dimension before collapsing (or zero, if it couldn\'d5t be collapsed). If any subview of the receiver is the first responder, it will be asked to resign and redraw itself before collapsing.\ If the containing RBSplitView\'d5s delegate implements \f2\fs22 \cf2 - splitView:didCollapse: \f0\fs28 \cf0 , it will call that method after collapsing. See \f2\fs22 \cf2 - canCollapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapseWithAnimation \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapseWithAnimation:withResize: \f0\fs28 \cf0 , \f2\fs22 \cf2 - expand \f0\fs28 \cf0 , \f2\fs22 \cf2 - expandWithAnimation \f0\fs28 \cf0 , \f2\fs22 \cf2 - expandWithAnimation:withResize \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCollapsed \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \cf0 collapseWithAnimation\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (BOOL) \f4\b collapseWithAnimation \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Will collapse the receiver, if it can be collapsed and was expanded, with animation. Returns YES if the animation was started successfully; only one RBSplitSubview can be animated at a time. The receiver\'d5s subviews will be resized during animation. The actual animation time will depend on the value returned by the containing RBSplitView\'d5s delegate method \f2\fs22 \cf2 - splitView:willAnimateSubview:withDimension: \f0\fs28 \cf0 , if that is implemented, or on the receiver\'d5s dimension, if it\'d5s not. If any subview of the receiver is the first responder, it will be asked to resign and redraw itself before collapsing.\ If the containing RBSplitView\'d5s delegate implements \f2\fs22 \cf2 - splitView:didCollapse: \f0\fs28 \cf0 , it will call that method after finishing the animation. See \f2\fs22 \cf2 - canCollapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - expand \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapseWithAnimation:withResize: \f0\fs28 \cf0 , \f2\fs22 \cf2 - expandWithAnimation \f0\fs28 \cf0 , \f2\fs22 \cf2 - expandWithAnimation:withResize \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCollapsed \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \cf0 collapseWithAnimation:withResize:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (BOOL) \f4\b collapseWithAnimation: \f0\b0 (BOOL) \f5\i animate \f4\i0\b withResize: \f0\b0 (BOOL) \f5\i resize \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Will collapse the receiver, if it can be collapsed and was expanded. If \f5\i animate \f0\i0 is NO, the receiver is collapsed immediately and NO is returned; \f5\i resize \f0\i0 is ignored.\ If \f5\i animate \f0\i0 is YES, the collapse will be animated and YES will be returned if the animation was started successfully; only one RBSplitSubview can be animated at a time. The receiver\'d5s subviews will be resized during animation only if \f5\i resize \f0\i0 is YES.\ The actual animation time will depend on the value returned by the containing RBSplitView\'d5s delegate method \f2\fs22 \cf2 - splitView:willAnimateSubview:withDimension: \f0\fs28 \cf0 , if that is implemented, or on the receiver\'d5s dimension, if it\'d5s not. If any subview of the receiver is the first responder, it will be asked to resign and redraw itself before collapsing.\ If the containing RBSplitView\'d5s delegate implements \f2\fs22 \cf2 - splitView:didCollapse: \f0\fs28 \cf0 , it will call that method after finishing the animation. See \f2\fs22 \cf2 - canCollapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapseWithAnimation \f0\fs28 \cf0 , \f2\fs22 \cf2 - expand \f0\fs28 \cf0 , \f2\fs22 \cf2 - expandWithAnimation \f0\fs28 \cf0 , \f2\fs22 \cf2 - expandWithAnimation:withResize \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCollapsed \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \cf0 coupledSplitView\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (RBSplitView*) \f4\b coupledSplitView \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns self if the receiver is a RBSplitView that is nested inside, and coupled to, another RBSplitView, and nil if not. Convenient for testing or calling methods.\ This differs from \f2\fs22 \cf2 - asSplitView \f0\fs28 \cf0 since it tests for coupling. See also \f2\fs22 \cf2 - couplingSplitView \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCoupled \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCoupled: \f0\fs28 \cf0 . \f1\b\fs16 \ \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \fs28 \cf0 couplingSplitView\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (RBSplitView*) \f4\b couplingSplitView \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns the containing RBSplitView if the receiver is a RBSplitView that is nested inside, and coupled to, that RBSplitView, and nil if not. Convenient for testing or calling methods.\ This differs from \f2\fs22 \cf2 - splitView \f0\fs28 \cf0 since it also tests for coupling. See also \f2\fs22 \cf2 - coupledSplitView \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCoupled \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCoupled: \f0\fs28 \cf0 . \f1\b\fs16 \ \ \pard\tx7140\li2480\fi-380\ql\qnatural \fs28 \cf0 dimension\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (float) \f4\b dimension \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns the receiver\'d5s dimension, the measure in pixels along the containing RBSplitView\'d5s orientation. Will always be an integer value. If the receiver is collapsed this will return the dimension it would have upon expanding. See \f2\fs22 \cf2 - setDimension: \f0\fs28 \cf0 , \f2\fs22 \cf2 - changeDimensionBy:mayCollapse:move: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \cf0 expand\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (float) \f4\b expand \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Will expand the receiver, if it was collapsed. As a convenience, it returns the receiver\'d5s dimension after expanding (or zero, if it wasn\'d5t collapsed). The view will return to the original dimension it had before being collapsed.\ If the containing RBSplitView\'d5s delegate implements \f2\fs22 \cf2 - splitView:didExpand: \f0\fs28 \cf0 , it will call that method after expanding. See \f2\fs22 \cf2 - collapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - canCollapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCollapsed \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \cf0 expandWithAnimation\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (BOOL) \f4\b expandWithAnimation \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Will expand the receiver, if it was collapsed, with animation. Returns YES if the animation was started successfully; only one RBSplitSubview can be animated at a time. The receiver\'d5s subviews will be resized during animation. The actual animation time will depend on the value returned by the containing RBSplitView\'d5s delegate method \f2\fs22 \cf2 - splitView:willAnimateSubview:withDimension: \f0\fs28 \cf0 , if that is implemented, or on the receiver\'d5s dimension, if it\'d5s not.\ If the containing RBSplitView\'d5s delegate implements \f2\fs22 \cf2 - splitView:didExpand: \f0\fs28 \cf0 , it will call that method after finishing the animation. See \f2\fs22 \cf2 - canCollapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapseWithAnimation \f0\fs28 \cf0 , \f2\fs22 \cf2 - expand \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCollapsed \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \fs28 \cf0 expandWithAnimation:withResize:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (BOOL) \f4\b expandWithAnimation: \f0\b0 (BOOL) \f5\i animate \f4\i0\b withResize: \f0\b0 (BOOL) \f5\i resize \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Will expand the receiver, if it was collapsed. If \f5\i animate \f0\i0 is NO, the receiver is expanded immediately and NO is returned; \f5\i resize \f0\i0 is ignored.\ If \f5\i animate \f0\i0 is YES, the expansion will be animated and YES will be returned if the animation was started successfully; only one RBSplitSubview can be animated at a time. The receiver\'d5s subviews will be resized during animation only if \f5\i resize \f0\i0 is YES.\ The actual animation time will depend on the value returned by the containing RBSplitView\'d5s delegate method \f2\fs22 \cf2 - splitView:willAnimateSubview:withDimension: \f0\fs28 \cf0 , if that is implemented, or on the receiver\'d5s dimension, if it\'d5s not.\ If the containing RBSplitView\'d5s delegate implements \f2\fs22 \cf2 - splitView:didExpand: \f0\fs28 \cf0 , it will call that method after finishing the animation. See \f2\fs22 \cf2 - canCollapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapseWithAnimation \f0\fs28 \cf0 , \f2\fs22 \cf2 - collapseWithAnimation:withResize \f0\fs28 \cf0 , \f2\fs22 \cf2 - expand \f0\fs28 \cf0 , \f2\fs22 \cf2 - expandWithAnimation \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCollapsed \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ identifier\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (NSString*) \f4\b identifier \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns the receiver\'d5s identifier, a string that you can use to identify RBSplitSubviews. Will never be nil. See \f2\fs22 \cf2 - setIdentifier: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ initWithFrame:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (id) \f4\b initWithFrame: \f0\b0 (NSRect) \f5\i rect \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Initializes a newly allocated RBSplitSubview with \f5\i rect \f0\i0 as its frame rectangle. The new view object must be inserted into a RBSplitView before it can be used. This method is the designated initializer for the RBSplitSubview class. Returns an initialized object.\ The origin of \f5\i rect \f0\i0 isn\'d5t used, and the size will be used only for relative resizing of the other subviews when inserted into a RBSplitView.\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ isCollapsed:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (BOOL) \f4\b isCollapsed \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns YES if the receiver is collapsed, NO otherwise. See \f2\fs22 \cf2 - canCollapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 , \f2\fs22 \cf2 -collapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - expand \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ isCoupled\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (BOOL) \f4\b isCoupled \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns YES if the receiver is a RBSplitView that is nested inside, and coupled to, another RBSplitView, NO otherwise. Normal RBSplitSubviews will always return NO. See \f2\fs22 \cf2 - coupledSplitView \f0\fs28 \cf0 , \f2\fs22 \cf2 - couplingSplitView \f0\fs28 \cf0 , \f2\fs22 \cf2 -setCoupled: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \cf0 minDimension\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (float) \f4\b minDimension \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns the receiver\'d5s current minimum dimension constraint. This will alway be at least 1.0, and despite being a float, will have only integer values. See \f2\fs22 \cf2 - maxDimension \f0\fs28 \cf0 , \f2\fs22 \cf2 - setMinDimension:andMaxDimension: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \fs28 \cf0 maxDimension\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (float) \f4\b maxDimension \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns the receiver\'d5s current maximum dimension constraint. This will alway be equal to, or greater than, \f2\fs22 \cf2 - minDimension \f0\fs28 \cf0 , and despite being a float, will have only integer values. If there\'d5s no maximum constraint, this method will return 1,000,000.0. See \f2\fs22 \cf2 - minDimension \f0\fs28 \cf0 , \f2\fs22 \cf2 - setMinDimension:andMaxDimension: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \fs28 \cf0 numberOfSubviews\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (unsigned) \f4\b numberOfSubviews \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 A convenience method to return the receiver\'d5s number of subviews.\ \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \f1\b \cf0 outermostSplitView\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (RBSplitView*) \f4\b outermostSplitView \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns the outermost directly containing RBSplitView or nil if there is none. See also \f2\fs22 \cf2 - splitView \f0\fs28 \cf0 , \f2\fs22 \cf2 - couplingSplitView \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx7140\li2480\fi-380\ql\qnatural \fs28 \cf0 position:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (unsigned) \f4\b position \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns the receiver\'d5s current position in the containing RBSplitView, counting from zero, left to right or top to bottom, depending on the orientation of the RBSplitView. Will return zero if there\'d5s no containing RBSplitView. See \f2\fs22 \cf2 - setPosition: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \cf0 setCanCollapse\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (void) \f4\b setCanCollapse: \f0\b0 (BOOL) \f5\i flag \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Set a flag to indicate if the receiver can be collapsed. See \f2\fs22 \cf2 - collapse \f0\fs28 \cf0 , \f2\fs22 \cf2 - expand \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCollapsed \f0\fs28 \cf0 , \f2\fs22 \cf2 - canCollapse: \f0\fs28 \cf0 . However, be aware that the RBSplitView\'d5s delegate can override all subviews\'d5 settings of \f2\fs22 \cf2 - setCanCollapse: \f0\fs28 \cf0 by implementing \f2\fs22 \cf2 - splitView:canCollapse: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \fs28 \cf0 setCoupled:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (void) \f4\b setCoupled: \f0\b0 (BOOL) \f5\i flag \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Ignored for RBSplitSubviews. If the receiver is a RBSplitView directly nested inside another RBSplitView, turns coupling on or off. Also see \f2\fs22 \cf2 - coupledSplitView \f0\fs28 \cf0 , \f2\fs22 \cf2 - couplingSplitView \f0\fs28 \cf0 , \f2\fs22 \cf2 - isCoupled: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx7140\li2480\fi-380\ql\qnatural \fs28 \cf0 setDimension:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (void) \f4\b setDimension: \f0\b0 (float) \f5\i value \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Sets the receiver\'d5s dimension, subject to the size constraints of the receiver and of sibling subviews. If the receiver is collapsed the effects will manifest only when it\'d5s reexpanded. This will call \f2\fs22 \cf2 - adjustSubviews \f0\fs28 \cf0 on the receiver\'d5s RBSplitView. See \f2\fs22 \cf2 - dimension \f0\fs28 \cf0 , \f2\fs22 \cf2 - changeDimensionBy:mayCollapse:move: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \pard\tx6140\tx9660\tx10180\li6140\fi-4040\ql\qnatural \fs28 \cf0 setHidden:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (void) \f4\b setHidden: \f0\b0 (BOOL) \f5\i flag \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Hiding a RBSplitSubview by passing YES makes the containing RBSplitView be adjusted so no gaps are visible. This differs from collapsing in that the subview\'d5s frame isn\'d5t changed. Unhiding it will restore it to the previous size, and will also readjust the containing RBSplitView. \f2\fs22 \cf2 \f0\fs28 \cf0 \ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 \ setIdentifier:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (void) \f4\b setIdentifier: \f0\b0 (NSString*) \f5\i aString \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Sets the receiver\'d5s identifier, a string that you can use to identify RBSplitSubviews. See \f2\fs22 \cf2 - identifier \f0\fs28 \cf0 .\ If you pass nil in \f5\i aString \f0\i0 , \f2\fs22 \cf2 - identifier \f0\fs28 \cf0 will return @"" (the empty string) instead of nil.\ \ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 setMinDimension:andMaxDimension:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (void) \f4\b setMinDimension:( \f0\b0 float) \f5\i newMinDimension \f4\i0\b andMaxDimension:( \f0\b0 float) \f5\i newMaxDimension \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Sets the receiver\'d5s minimum and maximum dimension constraints. See \f2\fs22 \cf2 - minDimension \f0\fs28 \cf0 , \f2\fs22 \cf2 - maxDimension \f0\fs28 \cf0 .\ Both parameters will be rounded down to integers, the minimum will be set to at least 1.0, and the maximum to at least the minimum. As a convenience, you can pass 0.0 in \f5\i newMaxDimension \f0\i0 to indicate that no maximum constraint is to be set \'d1 it will be set to 1,000,000 internally.\ \ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b \cf0 setPosition:\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (void) \f4\b setPosition: \f0\b0 (unsigned) \f5\i newPosition \f0\i0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Moves the receiver to the \f5\i newPosition \f0\i0 in the containing RBSplitView, if it exists. See \f2\fs22 \cf2 - position \f0\fs28 \cf0 .\ Other subviews from that position on are moved left or down; pass some huge number in \f5\i newPosition \f0\i0 to move the receiver to last place. \f2\fs22 \cf2 - adjustSubviews \f0\fs28 \cf0 should be called soon afterwards to recalculate the divider and cursor rects.\ \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \f1\b \cf0 splitView\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (RBSplitView*) \f4\b splitView \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns the containing RBSplitView or nil if there is none. Differs from \f2\fs22 \cf2 -[NSView superview] \f0\fs28 \cf0 in that it will return nil if the superview isn\'d5t a RBSplitView. Notice that you should avoid having \'d2orphan\'d3 RBSplitSubviews, or at least manipulating them while they\'d5re not inserted into a RBSplitView. See also \f2\fs22 \cf2 - couplingSplitView \f0\fs28 \cf0 .\ \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \f1\b \cf0 splitViewIsHorizontal\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (BOOL) \f4\b splitViewIsHorizontal \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 A convenience method that returns YES if the containing RBSplitView is horizontal.\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \pard\tx7140\li2480\fi-380\ql\qnatural \fs28 \cf0 status\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (RBSSubviewStatus) \f4\b status \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns the receiver\'d5s current status. Will return one of \f3\fs26 RBSSubviewExpanding \f0\fs28 , \f3\fs26 RBSSubviewCollapsing \f0\fs28 , \f3\fs26 RBSSubviewNormal \f0\fs28 or \f3\fs26 RBSSubviewCollapsed \f0\fs28 .\ The first two are negative, so getting a negative value means the subview is being animated.\ \f1\b\fs16 \ \pard\tx7140\li2480\fi-380\ql\qnatural \fs28 \cf0 tag\ \pard\li3240\fi-760\ql\qnatural \f0\b0 \cf0 - (int) \f4\b tag \f0\b0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs16 \cf0 \ \pard\tx2480\tx2860\tx3240\li2100\ql\qnatural \fs28 \cf0 Returns the receiver\'d5s tag, an integer that you can use to identify view objects in your application. See \f2\fs22 \cf2 - setTag: \f0\fs28 \cf0 .\ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ \ \ \pard\tx7140\li2480\fi-380\ql\qnatural \f0\b0\fs28 \cf0 \ \ \pard\tx7140\li2480\fi-380\ql\qnatural \f1\b\fs16 \cf0 \ }