首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSScrollView in a NSWindow

NSScrollView in a NSWindow
EN

Stack Overflow用户
提问于 2011-07-01 22:39:15
回答 1查看 1.8K关注 0票数 4

我在一个NSScrollView中有一个NSWindow,但是它似乎被禁用了。看起来它可以工作,但是滚动条是对鼠标或滚动轮没有响应的。

当我将完全相同的NSScrollView放在一个新的XCode项目的窗口中时,它的工作原理非常完美。关于我制作窗口的方式有一些东西是阻止卷轴工作的。

我已经能够将其简化为下面的示例:

代码语言:javascript
运行
复制
//Make a window
NSWindow* myWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(300, 300, 300, 300)
                                       styleMask:NSTitledWindowMask
                                       backing:NSBackingStoreRetained
                                       defer:NO];

//Make a scroll view
NSScrollView *scrollview = [[NSScrollView alloc] initWithFrame:NSMakeRect(0, 0, 300, 300)];
[scrollview setHasVerticalScroller:YES];
[scrollview setAcceptsTouchEvents:YES];
[myWindow setContentView:scrollview];

//Add something big to the scroll view
NSButton* btn = [[[NSButton alloc] initWithFrame:NSMakeRect(0, 0, 600, 900)] autorelease];
[scrollview setDocumentView:btn];

//Show the window
[NSApp arrangeInFront:self];
[myWindow makeKeyAndOrderFront:self];
[NSApp activateIgnoringOtherApps:YES];

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-01 23:22:24

根据我刚才所做的一些实验,您的问题似乎是如何指定NSBackingStoreRetained。医生说:

您不应该使用此模式。它结合了NSBackingStoreNonretained的局限性和NSBackingStoreBuffered的内存使用。

他们还说:

在MacOSX10.5及更高版本的

中,对保留窗口的请求将导致窗口系统创建一个缓冲窗口,因为这更符合实际使用。

这似乎不准确;将buffer:参数切换到NSBackingStoreBuffered使窗口和滚动视图符合我的期望。(文档还说不要使用NSBackingStoreNonRetained,实际上,它似乎存在类似于NSBackingStoreRetained的问题。)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6553883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档