【发布时间】:2016-10-12 01:55:58
【问题描述】:
我有一个 NSScrollView,它被设置为:
MyNSScrollView.hasHorizontalScroller = YES;
MyNSScrollView.hasVerticalScroller = YES;
MyNSScrollView.autohidesScrollers = YES;
MyNSScrollView.scrollerStyle = NSScrollerStyleOverlay;
我注意到,如果没有触控板连接到 OS X,并且默认情况下,NSScrollView 将忽略我在代码中的设置并强制始终显示滚动条:
我只能将我的系统设置更改为“滚动时”或将hasHorizontalScroller等设置为NO以隐藏它,后者将禁用鼠标滚动,这不是结果我要。
如果用户没有触控板,默认情况下(自动基于鼠标或触控板)将始终显示滚动条,即使内容大小不超过帧大小。但是如果你有一个触控板,它将是覆盖样式,无论滚动条是否显示,它都在内容之上。
两者的区别在于“遗留”样式会占用滚动视图中的空间。如果您使用 visiableRect 值进行计算,或者您的内容需要通过约束保持一定的纵横比,这将是一个问题。
有没有办法在不禁用它们的情况下强制隐藏它们?
【问题讨论】:
-
我建议你阅读你为自己写的东西。 “它会忽略我在程序中的设置并强制它们始终显示”=> 它是什么?你的申请?这些是什么?滚动条?
-
有 2 个滚动条,水平和垂直,这就是为什么我说它们,因为除了这 2 个条之外我没有提到其他东西。如果听起来不够清晰,我很抱歉。
-
忽略El Tomato,他最近有点脾气暴躁。
-
与其忽略用户偏好,为什么不找到一种方法来支持滚动条?
-
由于不同系统上的滚动条大小可能不同,可能会出现太多不可预知的情况。我正在考虑获取滚动框架并将其大小调整为零宽度/高度。
标签: objective-c macos cocoa nsscrollview nsscroller