1

我有一个包含三个NSTextFields 的窗口,如下所示:

+------------------------+
| +--------------------+ |
| | field1 (editable)  | |
| +--------------------+ |
| +--------------------+ |
| | field2 (editable)  | |
| +--------------------+ |
| +--------------------+ |
| | field3 (selectable)| |
| +--------------------+ |
+------------------------+

虽然field1field2是可编辑的,但field3设置为“可选择”,即我可以使用鼠标选择其中的文本并从中复制,但我无法编辑文本。

field2引用field3作为它的nextKeyView出口,但是当我在第一响应者时按下Tab键时,被激活而不是.field2field1field3

一旦我field在 Interface Builder 中设置为“可编辑”,选项卡就会按预期工作。

如何启用选项卡进入只读NSTextFields?

4

1 回答 1

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 ”:选择第三个,再次单击以选择 NSTextFieldCell,在 Inspector 中将NSTextField其类更改为。myNonEditableCellClass

就是这样

于 2012-06-14T20:21:46.233 回答