我有NSPathControl
弹出式风格。当我尝试选择其他“预定义”位置时 - 不会发生任何变化。
例子:
------------- 选择... ------------- 一些 MacBook 一些桌面 一些高清 等等。 -------------
默认情况下,例如“某些 macBook”被选中,但是当我尝试选择其他的,例如“某些 HD”时,没有任何变化:弹出菜单消失,默认选择显示相同。
我有NSPathControl
弹出式风格。当我尝试选择其他“预定义”位置时 - 不会发生任何变化。
例子:
------------- 选择... ------------- 一些 MacBook 一些桌面 一些高清 等等。 -------------
默认情况下,例如“某些 macBook”被选中,但是当我尝试选择其他的,例如“某些 HD”时,没有任何变化:弹出菜单消失,默认选择显示相同。
设置和连接 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.
}
我不知道为什么会存在这种行为,这对用户来说非常混乱。
我通常只是通过实现委托方法来“禁用”它:
- (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];
}
}
希望这可以帮助!