- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 NSSplitView,其左侧 Pane 中有一个 TableView 。我注意到,当我在左 Pane 中选择一个项目并将焦点更改到右 Pane 时,左 Pane 会失去焦点,突出显示的行的突出显示颜色会变成灰色,文本会变成黑色。
我通过覆盖 NSTableRowView 中的 drawSelectionInRect
来覆盖突出显示颜色。通过这样做,突出显示颜色保持相同的自定义颜色,但文本变暗,看起来不对。
我可以在表格 View 失焦时让突出显示颜色发生变化,或者防止文本在失焦时变暗吗?
最佳答案
当您单击 Split View中的另一个 View 时,OS X 似乎会在行 View 及其 subview 上调用 setBackgroundStyle。有趣的是,这似乎只发生在 NSOutlineView 上。
因为我已经有了代码来处理在选择行时将图像更改为不同的图像(以提高对比度),并且当我需要使用 outlineViewSelectionDidChange
和时,我显式设置背景样式outlineViewSelectionIsChanging
我重写了 setBackgroundStyle
使其成为无操作,并制作了自己的自定义 setter 来更改 _backgroundStyle
ivar。
看起来像这样:
@implementation TextFieldWithHighlighting
@synthesize backgroundStyle = _backgroundStyle;
- (NSBackgroundStyle) backgroundStyle {
return _backgroundStyle;
}
@synthesize secretBackgroundStyle = _secretBackgroundStyle;
- (NSBackgroundStyle) secretBackgroundStyle {
return _backgroundStyle;
}
- (void)setBackgroundStyle:(NSBackgroundStyle)backgroundStyle {
}
- (void) setSecretBackgroundStyle:(NSBackgroundStyle)secretBackgroundStyle {
_backgroundStyle = secretBackgroundStyle;
self.needsDisplay = YES;
}
- (void)drawRect:(NSRect)dirtyRect {
if(_backgroundStyle == NSBackgroundStyleDark) {
if(self.originalTextColor == nil) {
self.originalTextColor = self.textColor;
}
self.textColor = [NSColor whiteColor];
} else {
if(self.originalTextColor) {
self.textColor = self.originalTextColor;
} else {
self.textColor = [NSColor colorWithCalibratedRed:0x40/255.0 green:0x40/255.0 blue:0x41/255.0 alpha:0xFF/255.0];
}
}
[super drawRect:dirtyRect];
}
@end
它只对我有用,因为我正在显式处理更改其选择的行,并且据我所知,我不依赖操作系统为我更改它。如果我可以再次这样做,我只会插入使用系统突出显示颜色,在这种情况下我可以免费获得此功能。
关于cocoa - 防止 NSTableRowView 在未聚焦时更改突出显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35051359/
我有一个登录框,当 出现时,它会上下滑动/切换。单击链接。 这是一个尺寸约为 150 像素 x 100 像素的 DIV。 当有人点击此 DIV 外部时,我希望 DIV 滑动备份。我一直在玩 focu
jQuery 会阻止这种类型的行为吗? $("input").focusout(function() { $(this).focus(); }); 最佳答案 这是如何完成的(跨浏览器工作):
我想将聚焦和未聚焦窗口的 Alpha 设置为 90% 和 70%,而不是使用边框。这将适用于所有窗口,除了那些匹配某些标准(例如 className =“Gimp”)的窗口。我如何在我的 xmonad
我的布局中有一个 Recyclerview 和一个 EditText。 当我在 EditText 外部单击(即单击 Recyclerview)时,我希望 Recyclerview 获得焦点,而 Edi
我正在开发一个使用旧版 jQuery 1.3.2 的元素。我需要在 focus 上 blur 输入值并在 focusout 上返回它(如果没有改变)(不能使用 placeholder在这里)。 这就是
我有一个带有几个 TextViews 的自定义抽屉导航。这是布局: 问题是,如果我没有为 TextView
是否有一种简单的方法可以使我的应用程序的 float 工具选项板永久处于事件状态?它们都与打开的文档相关,因此没有理由让它们在任何时间点处于不活动状态。 最佳答案 使用 NSPanel 作为实用程序窗
尽管阅读了我可以在developer.android.com和stackoverflow上获得的所有内容,但是我确实认为应该可以实现,但是我仍然不知道该怎么做。 我正在尝试使用OpenGL ES 2.
我想在页面加载时聚焦一个元素( slider /轮播),以允许使用箭头键立即控制 slider 。 JQuery 的 .focus() 可以工作,但会自动将元素滚动到 View 中。这是有限视口(vi
我正在尝试让我的代码针对 Mozzila 中 14 年未修复的错误,该错误无法重新关注输入。我在多个地方发现(google mozilla focus not working 中的前 20 个结果中的
我有 ViewController,我想通过焦点引擎检索控制权。首先,我尝试通过要求自己查看来启动。 if settingsFilterSegment.isFocused {} 但我变得错误了,所以我
我想以编程方式将焦点设置在连续一列的表格中 NSTableCellView 中的两个编辑字段之一上,以便用户可以立即编辑该字段。在我的示例中,我可以选择该行(按下按钮后),但我找不到将焦点设置在特殊字
我创建了一个小的 Tab-Layout。 现在我如何根据 TabWidget 的状态(聚焦、按下...)指定它的颜色 我构建了一个新的 .xml,但我不知道如何将它设置到我的选项卡:
我有一个带有 JTree 的 JDialog,其中包括 DefaultMutableTreeNode 及其子节点。我希望在显示 JDialog 时聚焦树的节点之一。只需使用 tree.requestF
当我单击 EditText 时,会出现软键盘。我不希望在单击 EditText 时出现键盘,但是,我想获得 EditText 的力量。我想在没有键盘的情况下编辑它。 editText.setOnCli
在下图中,您可以看到“>”符号周围有一个虚线的“内部”边框,表示该按钮已获得焦点。 (我还在按钮周围添加了一个蓝色边框) 在我构建这些按钮的代码中,我正在做: setTimeout(function(
我在 css 上相当“新手”,并试图在主 div 聚焦时更改 FontAwesome 图标的颜色。我尝试了几种方法,尝试使用 div 的 id 或 class 在 focus 上更改它的颜色,但都没有
我如何判断焦点事件是由于输入按下=表单提交而发生还是仅仅因为单击而发生?进入控制台的事件数据是“focusout”类型,没有相关信息 $(".clientrow[clientid="+clientid
我有个小问题。目前,我正在使用 WordPress 开发一个带有 Flash 游戏的简单网页。 例如考虑这个页面:http://ggames.eu/2015/11/25/prince-of-persi
A 有一个 ListBox,需要在特定情况下聚焦特定项目(例如,显示搜索结果时)。这是通过附加属性使用以下函数完成的: public static void OnElementIndexPropert
我是一名优秀的程序员,十分优秀!