我有一个包含三个NSTextField
的窗口,如下所示:
+------------------------+
| +--------------------+ |
| | field1 (editable) | |
| +--------------------+ |
| +--------------------+ |
| | field2 (editable) | |
| +--------------------+ |
| +--------------------+ |
| | field3 (selectable)| |
| +--------------------+ |
+------------------------+
field1
和field2
可编辑,field3
设置为“可选”,即我可以使用鼠标选择文本并从中复制,但我无法编辑文本。
field2
引用field3
作为其nextKeyView
出口,但当Tab
是第一响应者field2
时,我按field1
键时,field3
被激活而不是field
。
只要我在Interface Builder中将NSTextField
设置为'editable',标签就会按预期工作。
如何启用标签为只读{{1}}?
答案 0 :(得分:1)
当我们知道时,只需创建 NSTextFieldCell 的子类即可: 在Xcode中添加一个名为“ myNonEditableCellClass ”的
myNonEditableCellClass.h
#import <Cocoa/Cocoa.h>
@interface myNonEditableCellClass : NSTextFieldCell {}
@end
-
myNonEditableCellClass.m
#import "myNonEditableCellClass.h"
@implementation myNonEditableCellClass
- (BOOL)acceptsFirstResponder {
return YES;}
@end
进入“ Interface Builder ”:选择第三个NSTextField
,再次点击选择NSTextFieldCell,在检查器中将其类更改为myNonEditableCellClass
。
就是这样