macOS/iOS API解説

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

目次

state

INDEX>AppKit>NSDrawer

引き出しの状態を返します

Objective-C

@property(readonly) NSInteger state

Swift

var state: Int { get }

解説

引き出しの状態を返します。
NSDrawerState】引き出しの状態
● NSDrawerClosedState 閉じている途中
● NSDrawerOpeningState 開き終わった
● NSDrawerOpenState 開いている途中
● NSDrawerClosingState 閉じ終わった

設定値

Objective-C

@property(readonly) NSInteger state

Swift

var state: Int { get }

フレームワーク

ApplicationKit

クラス

NSDrawer

使用可能

10.0

参照

cocoaapi.hatenablog.com

更新時のバージョン

OS X 10.10.2

関連記事(外部サイト)

例文

#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction1:(id)sender
{
[drawer open:nil];
NSLog([self drawerStateString:[drawer state]]);
}

- (IBAction)myAction2:(id)sender
{
[drawer close:nil];
NSLog([self drawerStateString:[drawer state]]);
}

-(NSString *)drawerStateString:(int)state
{
NSString *retString;
switch (state){
    case NSDrawerClosedState:
        retString = @"NSDrawerClosedState";
        break;
    case NSDrawerOpeningState:
        retString = @"NSDrawerOpeningState";
        break;
    case NSDrawerOpenState:
        retString = @"NSDrawerOpenState";
        break;
    case NSDrawerClosingState:
        retString = @"NSDrawerClosingState";
        break;
    };
    return retString;
}
@end


Swift

    //NSDrawer state
    var theDrawer005 : NSDrawer = NSDrawer(contentSize: NSMakeSize(100.0, 100.0),
        preferredEdge: 1 )
    //preferredEdge 0=左、1=下、2=右、3=上
    func buttonAction005(sender: AnyObject){
        
        var theWindow : NSWindow = (sender as NSButton).window!
        
        if ((theWindow.drawers) != nil){
            NSLog("%@", theWindow.drawers!.description)
        }
        //drawerを表示/非表示
        theDrawer005.toggle(theWindow)
        
    }
    func checkTimer005(timer:NSTimer!) {

        switch (theDrawer005.state){
        case 0: //NSDrawerState.ClosedState:
            NSLog("閉じている")
        case 1: //NSDrawerState.OpeningState:
            NSLog("開いている途中")
        case 2: //NSDrawerState.OpenState:
            NSLog("開いている")
        case 3: //NSDrawerState.ClosingState:
            NSLog("閉じている途中")
        default:
            NSLog("閉じている")
        }
    }
    @IBAction func function005(sender: AnyObject) {
        var aWindow : NSWindow = NSWindow(contentRect: NSMakeRect(0.0, 0.0, 300, 200), styleMask: NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask, backing: .Buffered, defer: false)
        windowArray.addObject(aWindow) //ウインドウを保持するための配列に追加。アプリ終了時に配列は破棄
        
        //ボタンを作成
        var theButton : NSButton = NSButton(frame: NSMakeRect(100.0, 2.0, 100.0, 30.0))
        theButton.title = "Toggle"
        theButton.bezelStyle = NSBezelStyle.RoundedBezelStyle
        theButton.action = Selector("buttonAction005:")
        theButton.target = self
        
        aWindow.contentView.addSubview(theButton)
        
        let delegateObj : DrawerDelegate = DrawerDelegate()
        delegateObjects.addObject(delegateObj)
        theDrawer005.delegate = delegateObj
        NSLog("delegate = %@",delegateObj)
        
        //テキストフィールドを作成、引き出しに付ける
        var textField : NSTextField = NSTextField(frame: NSMakeRect(10.0, 10.0, 50.0, 30.0))
        theDrawer001.contentView?.addSubview(textField)
        
        //引き出しのウインドウを設定
        theDrawer005.parentWindow = aWindow
        
        var timer = NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: Selector("checkTimer005:"), userInfo: nil, repeats: true)
        
        //ウインドウの表示
        aWindow.center()//ウインドウをスクリーンの中心に
        aWindow.title = "ウインドウタイトル"//タイトル設定
        aWindow.orderFront(self)//前面に
        aWindow.makeKeyAndOrderFront(self)//表示
    }