2012-10-01 57 views
0

我有下一個問題。當我嘗試選擇其他「預定義」位置時,不會發生更改。
NSPathControl不會改變它的「價值」

例子:

 
------------- 
choise... 
------------- 
Some macBook 
Some desktop 
Some HD 
and etc. 
------------- 

默認情況下,例如,選擇「有些MACBOOK」,但是當我嘗試選擇什麼都等,例如「有些HD」,沒有改變發生:流行向上菜單消失,默認選擇保持顯示給用戶。
任何人都可以解釋我爲什麼得到這種行爲?
謝謝。

回答

0

我不知道爲什麼會出現這種行爲,這對用戶來說非常混亂。

我一般只是 「禁用」 它,通過實施委託方法:

- (void)pathControl:(NSPathControl *)pathControl willPopUpMenu:(NSMenu *)menu { 
    // We don't want to show the useless "parent folders" menu items, as they are very confusing. 
    while ([[menu itemArray] count] >= 4) { 
     [menu removeItemAtIndex:3]; 
    } 
} 

希望這有助於!

0

安裝和連接NSPathControl

.H

@property (nonatomic, weak) IBOutlet NSPathControl pathControl; 

.M

-(void) awakeFromNib { 
// Give Path control some value 
     [_pathControl setURL:[NSURL fileURLWithPath:@"/Users/Username/MyPath" isDirectory:YES]]; 
} 

在IB連接動作。

* 注:我注意到,如果您使用綁定對象進行連接,則此操作不會返回值。 *如果您使用綁定,那麼使用一些KVC陷阱的解決方案將是必要的。

-(IBAction) pathControlClicked:(id)sender { 
NSPathControl* pathCntl = (NSPathControl *)sender; 

NSPathComponentCell *component = [pathCntl clickedPathComponentCell]; // find the path component selected 
[pathCntl setURL:[component URL]];   // set the url to the path control 


_ivarStringVariable=component.URL.path; 

// If you want to configure pathComponentCells here is place to do it. 

}