3

NSTextFieldCellに設定したいカスタムがありNSTextFieldます。
IBに設定すると、正常に動作します。

ここに画像の説明を入力

そして、これは次のように機能します:

ここに画像の説明を入力

しかし、プログラムで設定したいので、次のようなことを試します:

-(void)awakeFromNib{

    NSRect theRect = NSRectFromCGRect( NSMakeRect(50, 100, 100, 100));
    NSTextField *inputField = [[NSTextField alloc] initWithFrame:theRect];
    DRKHUDTextFieldCell *theC = [[DRKHUDTextFieldCell alloc] initTextCell:@"textfield"];
    [inputField setCell:theC];

    [[_window contentView] addSubview:inputField];

    }  

これは私が得る結果です:

ここに画像の説明を入力

何がうまくいかないのですか?私のコードは悪いですか?

4

2 に答える 2

4

これは迅速な解決策です。上記のObjective Cの回答は完全ではなかったため、うまくいきませんでした。

let cell = CustomTextFieldCell(textCell: "")
self.cell = cell
self.isBordered = true
self.backgroundColor = .white
self.isBezeled = true
self.bezelStyle = .squareBezel
self.isEnabled = true
self.isEditable = true
self.isSelectable = true

プロパティを置き換える場合は、すべてのプロパティをリセットする必要がありcellます。これらはデフォルト値です。ケースに合わせて独自の値を設定してみてください。

于 2017-08-02T07:28:37.953 に答える
0

この方法を試してみてください。うまくいきます:

 NSRect theRect = NSRectFromCGRect( NSMakeRect(50, 100, 100, 100));

    NSTextField *inputField = [[NSTextField alloc] initWithFrame:theRect];

    NSTextFieldCell *theC = [[NSTextFieldCell alloc] initTextCell:@"textfield"];

    [inputField setCell:theC];

    [inputField setBordered:YES];

    [inputField setBackgroundColor:[NSColor whiteColor]];

    [inputField setBezeled:YES];

    [inputField setBezelStyle:0];

   [[_window contentView] addSubview:inputField];
于 2013-09-27T11:57:19.790 に答える