Tôi có một NSSegmentedControl trên giao diện người dùng của tôi với 4 nút. Việc kiểm soát được kết nối với một phương pháp mà sẽ gọi các phương thức khác nhau tùy thuộc vào phân khúc được nhấp:Hiển thị menu NSSegmentedControl khi phân đoạn được nhấp, mặc dù đã đặt hành động
- (IBAction)performActionFromClick:(id)sender {
NSInteger selectedSegment = [sender selectedSegment];
NSInteger clickedSegmentTag = [[sender cell] tagForSegment:selectedSegment];
switch (clickedSegmentTag) {
case 0: [self showNewEventWindow:nil]; break;
case 1: [self showNewTaskWindow:nil]; break;
case 2: [self toggleTaskSplitView:nil]; break;
case 3: [self showGearMenu]; break;
}
}
Segment 4 có có một thực đơn gắn liền với nó trong phương pháp awakeFromNib. Tôi muốn menu này thả xuống khi người dùng nhấp vào phân khúc. Tại thời điểm này, nó sẽ chỉ giảm nếu người dùng nhấp vào & giữ trên menu. Từ nghiên cứu trực tuyến của tôi, điều này là do hành động được kết nối.
Tôi hiện đang làm việc xung quanh bằng cách sử dụng một số mã để lấy điểm gốc của điều khiển phân đoạn và bật trình đơn ngữ cảnh bằng cách sử dụng NSMenu popUpContextMenu:withEvent:forView
nhưng điều này khá dễ hiểu và có vẻ kém so với hành vi chuẩn của trình đơn thả xuống dưới ô điều khiển được phân đoạn.
Có cách nào tôi có thể có menu thả xuống vì nó nên sau một nhấp chuột duy nhất thay vì làm điều menu ngữ cảnh hacky?
Trong 10.10.2/Xcode 6.3, hành vi tiêu chuẩn cho menu là thả xuống khi người dùng nhấp vào phân đoạn không có hành động nào được đính kèm; và yêu cầu nhấp và giữ khi phân đoạn có IBAction. Vì hành động của bạn là 'trình đơn hiển thị', bạn sẽ có thể xóa nó. –
Bạn làm cách nào để đính kèm hành động vào từng phân đoạn? –