如何在PopUp样式的NSPathControl中设置所选项?

时间:2012-10-01 12:52:46

标签: cocoa

我有弹出式的NSPathControl。当我尝试选择其他“预定义”位置时 - 不会发生任何变化。

示例:

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

默认情况下,例如,选择“Some macBook”,但当我尝试选择另一个时,例如“Some HD”,则没有变化:弹出菜单消失,默认选择显示相同。

2 个答案:

答案 0 :(得分:1)

设置并连接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.

}

答案 1 :(得分: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];
    }
}

希望这有帮助!