当视图打开时,我想要选择第一个NSTextFIEld,clIEntNumber,所以我在loadVIEw方法的末尾触发[clIEntNumber becomeFirstResponder],但是它没有选择文本字段.
但是,当我单击触发(IBAction)addToArray方法的按钮时,它会选择正确的文本字段.我还有另一个文本字段,它应该只包含整数,所以我有一个粗略的验证.当内容不是int时,我会发出一声嘟嘟声,就像它应该的那样,但它不会选择文本字段.
这是我的代码:
- (ID)initWithNibname:(Nsstring *)nibnameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibname:nibnameOrNil bundle:nibBundleOrNil]; if (self) { NSLog(@"initWithNibname"); } return self;}- (voID)vIEwWillLoad { NSLog(@"vIEwWillLoad");}- (voID)vIEwDIDLoad { NSLog(@"vIEwDIDLoad"); [self initNewInvoice]; }- (voID)loadVIEw { NSLog(@"loadVIEw"); [self vIEwWillLoad]; [super loadVIEw]; [self vIEwDIDLoad]; FakturaAppDelegate *appDelegate = (FakturaAppDelegate *)[[NSApplication sharedApplication] delegate]; [appDelegate.window makeFirstResponder:self.clIEntNumber]; }- (voID)awakeFromNib{ NSLog(@"awakeFromNib");}- (IBAction)saveInvoice:(ID)sender{ FakturaAppDelegate *appDelegate = (FakturaAppDelegate *)[[NSApplication sharedApplication] delegate]; [appDelegate.window makeFirstResponder:self.invoiceCredit]; }- (IBAction)addToArray:(ID)sender{ [clIEntNumber setStringValue: @"Toodeloo"]; FakturaAppDelegate *appDelegate = (FakturaAppDelegate *)[[NSApplication sharedApplication] delegate]; [appDelegate.window makeFirstResponder:self.clIEntNumber]; }- (IBAction)updateCreditDays:(ID)sender{ if(invoiceCredit.intValue){ [self updateCredit]; }else{ NSBeep(); FakturaAppDelegate *appDelegate = (FakturaAppDelegate *)[[NSApplication sharedApplication] delegate]; [appDelegate.window makeFirstResponder:self.invoiceCredit]; }}
我真的希望有人可以帮助我.
编辑:
我完全错了,感谢指针,但是当我修复代码时,使用这个:
FakturaAppDelegate * appDelegate =(FakturaAppDelegate *)[[NSApplication sharedApplication] delegate];
[appDelegate.window makeFirstResponder:self.invoiceCredit];
而不是成为第一个响应者.但它仍然无法奏效.
在Interface Builder中,将窗口的initialFirstResponder出口设置为指向文本字段.
而已.
如果您绝对必须以编程方式执行此 *** 作,请使用:
[window setinitialFirstResponder:yourTextFIEld];
记住,如果你和Cocoa一起做一些看起来应该很简单的事情,那么你可能做错了.
总结以上是内存溢出为你收集整理的objective-c – 在Cocoa Mac OSX中设置FirstResponder的问题全部内容,希望文章能够帮你解决objective-c – 在Cocoa Mac OSX中设置FirstResponder的问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)