macOS/iOS API解説

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

目次

disableFlushWindow

INDEX>AppKit> NSWindow

ウインドウが描き変わらないようにします

Objective-C

- (void)disableFlushWindow

Swift

func disableFlushWindow()

解説

disableFlushWindow()からenableFlushWindow()で挟まれた間、ウインドウが描き変わらないようにします。
イベントは受け付けますが、enableFlushWindowを送るまで再描画されません。

ビューの操作をする場合などにちらつきの原因となる再描画を、disableFlushWindow()からenableFlushWindow()までの間で停止します。

下記のサンプルでは「Not Flush」ボタンを押すとテキストフィールドの内容を書き換えている間はウインドウの再描画をしないようにします
f:id:jjj777:20150403230251g:plain

Swift

func buttonAction087_noflush(sender: AnyObject){
        var aWindow : NSWindow = (sender as NSButton).window!
        aWindow.disableFlushWindow()
            for textField in textFieldArray {
                aWindow.makeFirstResponder(textField)
                textField.display()
                textField.stringValue = "n"
            }
        aWindow.enableFlushWindow()
    }

返り値

なし

引数

なし

フレームワーク

ApplicationKit

クラス

NSWindow

使用可能

10.0

参照

更新時のバージョン

OS X 10.10

関連記事(外部サイト)

例文

#import "Controller.h"

@implementation Controller
- (IBAction)cache:(id)sender;//ボタンを押す
{
[myWindow cacheImageInRect:NSMakeRect(0,0,100,100)];
}
- (IBAction)restore:(id)sender;//ボタンを押す
{
[myWindow restoreCachedImage];
}
- (IBAction)onOff:(id)sender;
{

    if ([myWindow isFlushWindowDisabled]){
        [myWindow enableFlushWindow];
        NSLog(@"YES");
    }else{
        [myWindow disableFlushWindow];
        NSLog(@"NO");
    }

}
@end