我有弹出式的NSPathControl
。当我尝试选择其他“预定义”位置时 - 不会发生任何变化。
示例:
------------- choice... ------------- Some macBook Some desktop Some HD and etc. -------------
默认情况下,例如,选择“Some macBook”,但当我尝试选择另一个时,例如“Some HD”,则没有变化:弹出菜单消失,默认选择显示相同。
答案 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];
}
}
希望这有帮助!