1

NSTextField次のように、3 つのを含むウィンドウがあります。

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

field1field2は編集可能ですが、「選択可能」に設定されてfield3います。つまり、マウスを使用してテキストを選択してコピーすることはできますが、テキストを編集することはできません。

field2はアウトレットfield3として参照しますが、 がファーストレスポンダーのときにキーを押すと、 の代わりにアクティブになります。nextKeyViewTabfield2field1field3

fieldInterface Builder で「編集可能」に設定するとすぐに、タブ移動が意図したとおりに機能します。

読み取り専用へのタブ移動を有効にするにはどうすればよいNSTextFieldですか?

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」に移動します。3番目NSTextFieldを選択し、もう一度クリックしてNSTextFieldCellを選択しmyNonEditableCellClass、インスペクターでそのクラスをに変更します。

それでおしまい

于 2012-06-14T20:21:46.233 に答える