NSSplitView控件上下拖动时窗口自适应调整 样例
来源:互联网 发布:延时摄影编辑软件 编辑:程序博客网 时间:2024/06/07 22:57
本例子实现在NSSplitview控件上下拖动或左右拖动时 两个子窗口自动调整的按钮
下载样例代码
// AppDelegate.h// Cocoa_SplitView#import <Cocoa/Cocoa.h>@interface AppDelegate : NSObject <NSApplicationDelegate,NSSplitViewDelegate>@property (assign) IBOutlet NSTextView *textView;@property (assign) IBOutlet NSSplitView *splitView;@property (assign) IBOutlet NSTableView *tableView;@property (assign) IBOutlet NSButton *button;@property (assign) IBOutlet NSWindow *window;- (IBAction)dosome:(id)sender;@end
//// AppDelegate.m// Cocoa_SplitView#import "AppDelegate.h"@implementation AppDelegate@synthesize textView = _textView;@synthesize splitView = _splitView;@synthesize tableView = _tableView;@synthesize button = _button;- (IBAction)dosome:(id)sender{ NSSize size = {50,50}; [[self.textView enclosingScrollView] setFrameSize:size];}- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{}- (void) splitViewWillResizeSubviews:(NSNotification *)notification{ NSLog(@"splitViewWillResizeSubviews");}- (void) splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize{ NSLog(@"resizeSubviewsWithOldSize");}- (BOOL) splitView:(NSSplitView *)splitView shouldAdjustSizeOfSubview:(NSView *)view{ NSLog(@"shouldAdjustSizeOfSubview"); return YES;}- (void) splitViewDidResizeSubviews:(NSNotification *)notification{ NSLog(@"splitViewDidResizeSubviews"); NSRect rect = [self.splitView frame]; NSLog(@"nssplitview %f,%f,%f,%f",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height); NSArray *subviews = [self.splitView subviews]; NSView *topView = [subviews objectAtIndex:0]; NSRect trect = [topView frame]; NSLog(@"top view %f,%f,%f,%f",trect.origin.x,trect.origin.y,trect.size.width,trect.size.height); [[self.textView enclosingScrollView] setFrame:trect]; NSView *bottomView = [subviews objectAtIndex:1]; NSRect brect = [bottomView frame]; NSPoint point = {0,0}; NSRect lbrect = {point,brect.size}; [[self.tableView enclosingScrollView] setFrame:lbrect]; NSLog(@"bottom view %f,%f,%f,%f",brect.origin.x,brect.origin.y,brect.size.width,brect.size.height); }@end
注意:
1.在nssplitview控件的属性中一定不能钩选择“USE Autolayout”否则在委托处理中的逻辑将失效
2.nssplitview的委托一定要设置为appdelegate
有用资源:http://www.cocoabuilder.com/archive/cocoa/326128-nssplitview-not-resizing-subviews-if-delegate-is-used.html
- NSSplitView控件上下拖动时窗口自适应调整 样例
- NSSplitView 三个区域拖动联动调整相关控件大小
- onresize()调整浏览器窗口时,使图片等控件自适应地变化大小
- 控件拖动、调整大小
- 运行时拖动控件及调整控件大小的方法
- 控件自适应窗口大小
- Ubuntu16虚拟机调整窗口大小自适应windows7
- Android 重写ScrollView控件,以至于上下拖动时获取正确的滚动位置
- 探究MFC之Dialog窗口最大化时控件自适应
- Ubuntu16.04虚拟机调整窗口大小自适应VMware10窗口
- MFC窗口最大化时控件位置的调整
- 拖动窗口,如何防止控件闪动
- 自定义WinForm控件无法拖动到窗口
- 拖动窗口大小,文字自适应宽度,自动加省略号。
- 实现无边框可拖动调整大小的阴影窗口
- Qt——鼠标拖动调整窗口大小
- FlowLayoutPanel内用户控件通过上下移动进行顺序调整
- JS实现层上下部分可拖动,仿Windows垂直调整代码
- 2014找工作----扎实的基础和开阔的视野是企业最看重的因素
- PHP底层的运行机制与原理
- IOS UIActionSheet
- C/C++中内存区域划分大总结
- GridView事件DataBinding,DataBound,RowCreated,RowDataBound区别及执行顺序分析
- NSSplitView控件上下拖动时窗口自适应调整 样例
- 不要过度追求精简或者说是优化代码
- 使用Spring框架的12个开源项目
- linux 与windows 设置共享文件夹或卷盘
- ORA-01503: CREATE CONTROLFILE failed
- poj 1815 Friendship 网络流
- 黑马程序员html相关基础
- MySQL性能建议者:mysqltuner.pl
- 深入剖析WTL—WTL消息循环机制详解