隐藏加载面板时,工具栏上的所有项都将被禁用,并且不会调用valIDatetoolbarItem方法.
我正以这种方式展示小组:
- (voID)showInWindow:(NSWindow *)mainWindow { sheetwindow = [self window]; [self sheetwillShow]; [NSApp beginSheet:sheetwindow modalForWindow:mainWindow modalDelegate:nil dIDEndSelector:nil contextInfo:nil]; [NSApp runModalForWindow:sheetwindow]; [NSApp endSheet:sheetwindow]; [sheetwindow orderOut:self]; }- (voID)dismissModal { [sheetwindow close]; [NSApp stopModal];}
评论后编辑:
我已经尝试过了:
> [[[NSApp mainWindow]工具栏] valIDateVisibleItems]
> [[NSApp mainWindow] update];
> [NSApp updatewindows];
> [NSApp setwindowsNeedUpdate:YES];
所有的电话后解雇模因.我在想其他问题……
解决方法 问题是NSToolbar只向NSToolbarItem发送验证消息,这些消息是Image类型的,我的都没有.为了验证任何或所有NStoolbaritems,创建NSToolbar的自定义子类并覆盖valIDateVisibleItems:方法.这将向所有可见的NSToolbarItem发送验证消息.唯一真正的区别是,不需要让Toolbar类使用返回的BOol启用或禁用该项,您需要在验证方法本身中启用或禁用该项.@interface CustomToolbar : NSToolbar@end@implementation CustomToolbar-(voID)valIDateVisibleItems{ for (NSToolbarItem *toolbarItem in self.visibleItems) { NSResponder *responder = toolbarItem.vIEw; while ((responder = [responder nextResponder])) { if ([responder respondsToSelector:toolbarItem.action]) { [responder performSelector:@selector(valIDatetoolbarItem:) withObject:toolbarItem]; } } }}@end
现在,假设您有一个带有IBAction方法的控制器,该方法处理工具栏中NSSegmentedControl的 *** 作:
- (IBAction)backbutton:(NSSegmentedControl*)sender{ NSInteger segment = sender.selectedSegment; if (segment == 0) { // Action for first button segment } else if (segment == 1) { // Action for second button segment }}
将以下内容放在处理工具栏项 *** 作的同一控制器中:
-(BOol)valIDatetoolbarItem:(NSToolbarItem *)toolbarItem{ SEL theAction = [toolbarItem action]; if (theAction == @selector(backbutton:)) { [toolbarItem setEnabled:YES]; NSSegmentedControl *backToolbarbutton = (NSSegmentedControl *)toolbarItem.vIEw; [backToolbarbutton setEnabled:YES forSegment:0]; [backToolbarbutton setEnabled:NO forSegment:1]; } return NO;}
结果是您可以完全控制启用或禁用的段.
只要项目的Received Action由响应者链中的控制器处理,该技术应该适用于几乎任何其他类型的NSToolbarItem.
我希望这有帮助.
总结以上是内存溢出为你收集整理的cocoa – 如何强制NSToolBar验证?全部内容,希望文章能够帮你解决cocoa – 如何强制NSToolBar验证?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)