3

「デフォルト」ボタンとして作成したいNSButtonので、「Enter」キーを押すとそのボタンがクリックされます(つまり、そのクリックアクションが呼び出されます)、そのキーを「\ r」に相当するように設定するか、 Xib で「Enter」キーを押します。

ただし、同じウィンドウにタイトル バーがない場合、デフォルトのボタンは機能しません。

私はmyWindowをプログラム的にボーダレスにしてみました

[mywindow setStyleMask:NSBorderlessWindowMask];

それでも役に立ちません。

だから私の質問は、ウィンドウにタイトルバーのない「デフォルト」ボタンとして NSButton を作成する方法です。

ありがとう。

4

2 に答える 2

2

ドキュメントから:

NSBorderlessWindowMask を使用するウィンドウは、canBecomeKeyWindow または canBecomeMainWindow を実装して YES を返さない限り、キーまたはメインになることはできません。

サブクラスNSWindow化して実装するcanBecomeKeyWindowか、タイトル バー ウィンドウのない「デフォルト」ボタンとして canBecomeMainWindow作成します。NSButton

@interface PBWindow : NSWindow

@end
@implementation PBWindow

-(BOOL)canBecomeKeyWindow
{
    return YES;
}
@end  

NSWindow クラス名を PBWindow に設定します。

ここに画像の説明を入力

出力:

ここに画像の説明を入力

于 2013-10-24T11:49:54.297 に答える
0

以下のプログラムで試してください:-

NSRect myRect = NSMakeRect(0.0, 0.0, 1, 1);
NSButton *defaultButton = [[NSButton alloc] initWithFrame:myRect];

[defaultButton setKeyEquivalent:@"\r"];
[defaultButton setTarget:self];
[defaultButton setAction:@selector(yourActionMethod:)];
[[self view] addSubview:defaultButton];
[defaultButton release];
于 2013-10-24T09:20:57.900 に答える