1

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

例子:

-------------
选择...
-------------
一些 MacBook
一些桌面
一些高清
等等。
-------------

默认情况下,例如“某些 macBook”被选中,但是当我尝试选择其他的,例如“某些 HD”时,没有任何变化:弹出菜单消失,默认选择显示相同。

4

2 回答 2

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.

}
于 2013-02-13T09:23:10.303 回答
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];
    }
}

希望这可以帮助!

于 2013-02-10T09:05:14.423 回答