- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Cocoa 中,我有一个 NSOutlineView,其中单元格是 NSTextFieldCell。该单元格显示的值是根据特定规则格式化的字符串(例如 float 或中间有空格的 float 对)。我制作了一个自定义 NSFormatter 来验证文本,这似乎没有问题。
但是,单元格(或大纲 View ,我不确定是什么原因造成的)似乎只在我的编辑结束时使用格式化程序。如果我在文本字段中输入一些字母字符(这违反了格式化规则),这些字符就会出现——我注意到格式化程序完成其工作的唯一方式是我现在无法将键盘焦点从该单元格移开。如果我将单元格的内容返回到有效的表单,那么我可以将焦点移开。
我已将单元格和大纲 View 设置为“连续”。
如果我一开始就无法在单元格中输入文本,那就更好了。是否有可能做到这一点,如果可以的话,如何做到?
最佳答案
回答我自己的问题,因为我找到了解决方案。有一个可选方法可以覆盖 NSFormatter
,这可以解决问题。可选方法是:
- (BOOL) isPartialStringValid: (NSString*) partialString
newEditingString: (NSString**) newString
errorDescription: (NSString**) error
如果 partialString
无效,则可以简单地返回 NO
。如果需要,可以通过 newString
中的引用返回固定字符串。
还有另一种方法也可以使用,但它更复杂:
- (BOOL) isPartialStringValid: (NSString**) partialStringPtr
proposedSelectedRange: (NSRangePointer) proposedSelRangePtr
originalString: (NSString*) origString
originalSelectedRange: (NSRange) origSelRange
errorDescription: (NSString**) error
关于cocoa - 让 NSFormatter 持续验证 NSTextFieldCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2865294/
我有一个 NSTableView,我使用以下代码更改行的高度: - (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger
我创建了一个自定义 NSTextFieldCell 并覆盖了 - (void)drawInteriorWithFrame: (NSRect)cellFrame inView: (NSView *)co
我希望我的每个表格单元格都可以滚动,因为它是可编辑的。我正在使用 self.nsChildTextFieldObj = [[NSTextFieldCell alloc] init];
我有一个基于单元格的 NSOutlineView,它显示 NSTextFieldCell 对象。 我想响应 keydown 或 keyup 事件,以便在文本包含某些预设关键字时使 NSTextFiel
我有一个表格 View ,在该 View 上选择一行的一列将调用重写的方法 - (void)selectWithFrame:(NSRect)inCellFrame inView:(NSView *)i
我有基于 View 的 NSTableView,有 2 个文本列。 第一列使用自定义 NSTextFieldCell。第二列使用默认单元格。 这是自定义单元格代码: class CustomTextF
首先,我只需要文本上的一些背景颜色。就像 F 脚本浏览器中的标题 设置[cell setBackgroundColor: [NSColor blueColor]];为整个单元格空间着色,而不仅仅是文本
当你在drawInteriorWithFrame:inView:中调用[super drawInteriorWithFrame:cellFrame inView:controlView]时,有没有办法
我的 NSTextFieldCell 代码是: - (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
我试图在选择单元格时更改 NSTextFieldCell 的背景颜色。 这是代码: - (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)c
我有一个 NSTextFieldCell 子类,在实现中只有这个代码: - (NSRect)drawingRectForBounds:(NSRect)theRect { // Get the
我试图获取 NSTextFieldCell 的 NSPoint 坐标,但 NSTextFieldCell 不是从 NSView 继承的,因此没有框架方法。关于如何解决这个问题有什么想法吗? 我正在尝试
有什么方法可以根据 NSTableView 中的文本量调整 NSTextFieldCell 的高度吗? 简而言之,我希望 tableView:heightOfRow: 根据相应 NSTextField
我需要显示一个多行的 NSTextFieldCell,每行格式不同。 是这样的: 第 1 行:标题 第 2 行:描述 我对 NSTextFieldCell 进行了子类化,但我不知道如何继续使用它。 有
我的应用程序中有一个 NSTableView,其中的数据在 X 轴和 Y 轴上绘制(即,每一行都与每一列匹配。)我已经按照我想要的方式填充了单元格的数据,但水平延伸的柱子看起来很糟糕。 我想将 NST
我基本上想要实现的是更改表格中单元格的格式,以便在单元格未启用时将其清空。 为了定义是否启用表列中的单元格,我使用启用的绑定(bind)进行了绑定(bind),并且工作正常,启用了表的某些行中的单元格
我想在 TableView 中显示一个长度为(最大)4000 个字符的字符串。我尝试过使用 NSAttributedString 来找出 NSTextFieldCell 的行高,但是当我插入 > 4
我已经尝试了一两天,尝试在 NSTextField 的文本内绘制阴影(并使前景色透明,因此您看到的只是文本内的阴影)。我还没有取得理想的、实际的结果。我在此方面取得的唯一成功是将文本转换为 NSBez
我有一个 NSTableView,它显示一些代表我的自定义对象的信息。我没有使用绑定(bind)。 通常,我会创建自己的 NSCell 来显示数据,但这一次我需要一个 NSTextFieldCell,
如果用户在编辑 NSTextFieldCell 时输入了某些文本,我会尝试将 NSTextFieldCell 的内容加粗。 到目前为止我已经得到了这个: 在 awakeFromNib 中: [[NSN
我是一名优秀的程序员,十分优秀!