macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

performKeyEquivalent:

INDEX>AppKit>NSButton

キーを押したときに呼ばれます

Objective-C

-(BOOL)performKeyEquivalent:(NSEvent *)anEvent:

Swift

func performKeyEquivalent(_ anEvent: NSEvent) -> Bool

解説

キーを押したときに呼ばれます。
マウスクリクした場合は呼ばれません。
サブクラスでオーバーライドして使います。
使用不能ならNOを返します。

返り値

Objective-C
YES/NO

( BOOL )

Swift
true/false

Bool

引数

Objective-C

( NSEvent * )anEvent

Swift

_ anEvent: NSEvent


イベント

フレームワーク

ApplicationKit

クラス

NSButton

使用可能

10.0

参照


keyEquivalent - Cocoa API解説(iOS/OS X)


keyEquivalentModifierMask - Cocoa API解説(iOS/OS X)

編集時のバージョン

10.10

例文

Objective-C

#import "MyButton.h"

@implementation MyButton

//キーが押されたら呼び出される
- (BOOL)performKeyEquivalent:(NSEvent *)key
{
	[self setTitle:[key characters]];
	return YES;
}
@end

Swift

class MyButton: NSButton {

    override func performKeyEquivalent(key: NSEvent) -> Bool {
        super.performKeyEquivalent(key)
        NSLog("key PUSH!")
        return true 
    }
}

    //NSButton
    @IBAction func function019(sender: AnyObject) {
        var aWindow : NSWindow
        = NSWindow(contentRect: NSMakeRect(0.0, 0.0, 300.0, 200.0),
            styleMask: NSTitledWindowMask
                | NSClosableWindowMask
                | NSMiniaturizableWindowMask
                | NSResizableWindowMask,
            backing: .Buffered,
            defer: false,
            screen: NSScreen.mainScreen())
        windowArray.addObject(aWindow) //ウインドウを保持するための配列に追加。アプリ終了時に配列は破棄
        aWindow.center()//ウインドウをスクリーンの中心に
        aWindow.title = "ウインドウタイトル"//タイトル設定
        //
        var theButton : MyButton = MyButton(frame: NSMakeRect(50.0, 50.0, 100.0, 30.0))
        theButton.title = "Change"
        theButton.bezelStyle = NSBezelStyle.RoundedBezelStyle
        theButton.action = Selector("buttonAction002:")
        theButton.target = self
        //コマンド+シフト+「l」でボタンを押したことにする
        theButton.keyEquivalent = "l"
        theButton.keyEquivalentModifierMask = Int(NSEventModifierFlags.CommandKeyMask.rawValue | NSEventModifierFlags.ShiftKeyMask.rawValue)
        
        theButton.setButtonType(.MomentaryLightButton)
        aWindow.contentView.addSubview(theButton)
        
        aWindow.orderFront(self)//前面に
        aWindow.makeKeyAndOrderFront(self)//表示
    }

関連記事(外部リンク)