macOS UI 選擇! Radio Buttons

選擇! Radio Buttons

Radio Button的功能機像名稱所說的Radio(收音機)一樣,每次只能選擇一個頻道收聽,所以這也代表每一次只能選擇一個選項。

新增 Radio Buttons

新增的 Radio Buttons 是以群組的關念存在的,一開始你必需要將Radio Group拖拉到Layout的畫面上:

(閱讀全文…)

 macOS UI 對話框!儲存面板增加自定功能

對話框!儲存面板增加自定功能

儲存對話框(面板)功能

之前文章中已經有介紹開啟與儲存對話框(面板)功能如何使用,但如果你要自定一些功能在存檔時讓使用者選擇,那就需要自訂一些功能View讓NSSavePanel使用。

增加功能元件

開啟與儲存對話框除了內建的選擇供選擇外,也可以自定一些功能後,利用setAccessoryView將整個View加入自定功能區塊,也就是上圖中綠框處,例子中我們新增一個可以用點選的方式來選擇檔案類型,這功能也是最常用到的功能,後面會介紹如何完成這個功能。

(閱讀全文…)

 macOS UI 對話框!開啟與儲存面板功能

用程式引用內建的開啟與儲存對話框(面板)功能

開啟與儲存對話框(面板)功能

撰寫Mac程式需要存檔或是開啟檔案時,會有一個介面與使用者互動,不過不用擔心自行要寫這個功能,因為Framework已經提供NSOpenPanelNSSavePanel框架使用,您可以依照您的情況去使用這兩項框架,如果您要讓使用者去選擇某個檔案或是選擇目錄時,那就能使用NSOpenPanel,如果是屬於要指定存檔的檔名時,就使用NSSavePanel

開啟檔案或指定目錄

達到這項功能需要使用NSOpenPanel,然而它是屬於對話框的方式,也就是與NSAlert用法類似,當然也提供了獨視窗模式合併視窗模式,這兩種模式的差別在於,合併視窗模式與原本的視窗是融合一體,並非是2個視窗的存在,依照使用情況可以自行選擇你要哪種類型。

獨立視窗模式

從圖中能明顯的看到獨立視窗是以原本的視窗再加上呼叫開啟對話框功能總共2個視窗,最基本的程式如下:

//-----------start-----------
    NSOpenPanel* panel = [NSOpenPanel openPanel];

    [panel beginWithCompletionHandler:^(NSInteger result){
        if (result == NSFileHandlingPanelOKButton) {
            NSURL*  theDoc = [[panel URLs] objectAtIndex:0];
            NSLog(@"%@",[theDoc relativeString]);
        }

    }];
//------------end------------

(閱讀全文…)

 Audio Cascade on Mac OSX – 處理所有的Mac聲音

Audio Cascade on Mac OSX – 處理所有的Mac聲音

Play and Record Audio

原先在播放或錄製聲音時會由APP透過Framework與Audio Driver溝通,Audio Driver收到訊息後再與硬體ADC溝通,需要設定的話就會進行設定,要接收或傳送資料到Buffer就會與硬體進行寫入或讀取的動作,這是一般會Mac OSX聲音系統中會做的流程,如果我們要進行聲音的Cascade就必需要透過Driver這方先進行修改,再由APP配合將聲音串起來。

(閱讀全文…)

 關掉所有Finder的視窗

關掉所有Finder的視窗

某些情況您可以會開啟多個Finder視窗,當你要關掉時還要一個一個將它關掉,有沒有比較快的方式可以一次關掉呢?答案是肯定的,Finder除了關掉單一視窗外,加上組合鍵就可以一次關掉所有的Finder視窗。

(閱讀全文…)