私は1つ以上のボタンを持つダイアログを持っていて、右端のものをデフォルトのものに設定できるようにしたいので、ユーザがEnterキーまたはReturnキーを押すと、ユーザーがクリックした。NSButtonのデフォルトの青い外観のボタン
私は[btn setKeyEquivalent:@"\r"]
を使用していますが、それはうまく動作しますが、ボタンが青い外観になっていないようにしてください。私は何をする必要がありますか?
私は1つ以上のボタンを持つダイアログを持っていて、右端のものをデフォルトのものに設定できるようにしたいので、ユーザがEnterキーまたはReturnキーを押すと、ユーザーがクリックした。NSButtonのデフォルトの青い外観のボタン
私は[btn setKeyEquivalent:@"\r"]
を使用していますが、それはうまく動作しますが、ボタンが青い外観になっていないようにしてください。私は何をする必要がありますか?
ボタンのベゼルのスタイルを正しく設定できないため、正しく表示されませんでした。私は今、このようボタンを設定しています:
[btn setBezelStyle:NSRoundedBezelStyle];
そして、デフォルトボタンを設定するには、これらの作業のいずれか:
[myWindow setDefaultButtonCell:[btn cell]];
または
[btn setKeyEquivalent:@"\r"]
ドキュメントは言う:あなたが返すようにキー相当物を設定した場合、そのボタンがデフォルトのボタンになっていること
注意を。
したがって、正しく実行しています。
[button setNeedsDisplay:YES];
これにより、ボタンが強制的に再描画されます。
ヨセミテ以上でまだ青みがかっていますか?私のダイアログには表示されません。たとえキーの同等物がReturn(少し左下の矢印記号)でも、 – Jay
[myWindow setDefaultButtonCell:[btn cell]]; // should do the trick.
詳細はApple's documentationを参照してください。
私の設定では、カスタムシートとなっていますデフォルトのボタンをNSAlertのように見せたいと思っていました。次の設定では、デフォルトの青色の外観が得られます。 10.12.3 Sierraで動作します。
button.bezelstyle = NSBezelStyleRounded; // Push in Interface Builder
button.keyEquivalent = @"\r";
button.highlighted = YES; // this is the most important part.
この解決策を見て興奮して自分自身を汚してしまった。私がボタンを強制的にデフォルトのボタン・セルにして強制的にキーの等価物を設定するとは思わなかったとは信じられません。 NSViewにショートカットが返されるように設定されたキーが含まれている場合でも、この操作を行う必要があります。奇妙だが真実。ありがとう! – Kezzer
Interface Builderでは、スタイル「プッシュ」を選択する必要があります。私はOS X 10.8.3(マウンテンライオン)のデフォルトのボタンセルとして設定されている場合、インターフェイスビルダが提供する15種類のスタイルすべてを調べ、プッシュのみが青色に輝いています。他のタイプは、リターンキーを同等のキーとして取り、デフォルトになりますボタンを押すだけで、 '押し 'ボタンが青色に点灯します。私はOS Xの他のバージョンでは全くテストしていません。この質問が2009年に尋ねられて答えられたとき、このメモはSnow Leopard(?)では必要ではない可能性が非常に高いです。 – ArtOfWarfare
ありがとう。これは私を助けた:) – Sid