Sam*_*Lee 2 cocoa interface-builder
我正在开发OS X/Cocoa应用程序,我想要这样的行为:
我该如何编程呢?
从子类化NSViewController开始,因此每个子视图都有一个控制器.在操作方法中,当用户单击按钮以在视图之间切换时,可以使用适当的类和nib创建新的视图控制器(在窗口控制器中的ivar中保留对它的引用).视图控制器充当笔尖的所有者.然后你要做的就是在主窗口中添加视图控制器的视图作为子视图,然后进行设置.
这是一个简单的例子.在执行一些非相关任务之后,在操作方法(以及启动后)的主窗口控制器中调用它; 唯一棘手的部分是修补响应链(如果你很幸运,你可能不需要这样做).
- (void)_setAccessoryViewControllerFromTag:(NSInteger)tag;
{
if ( _accessoryContentViewController != nil )
{
[self setNextResponder:[_accessoryContentViewController nextResponder]];
[_accessoryContentViewController release];
}
switch ( tag )
{
case 0:
_accessoryContentViewController = [[RLGraphsViewController alloc] initWithNibName:@"GraphsView" bundle:nil];
break;
case 1:
_accessoryContentViewController = [[RLSummaryViewController alloc] initWithNibName:@"SummaryView" bundle:nil];
break;
case 2:
_accessoryContentViewController = [[RLEquipmentViewController alloc] initWithNibName:@"EquipmentView" bundle:nil];
break;
default:
_accessoryContentViewController = [[RLLocationsViewController alloc] initWithNibName:@"LocationsView" bundle:nil];
break;
}
[_accessoryContentViewController setNextResponder:[self nextResponder]];
[self setNextResponder:_accessoryContentViewController];
[self.accessoryView setContentView:[_accessoryContentViewController view]];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3083 次 |
| 最近记录: |