无法在NSView中从drawRect或mouseUp设置NSTextField

时间:2015-09-20 05:00:02

标签: objective-c xcode macos cocoa nsview

我有一个NSView类,想从drawRect或mouseUp设置NSTextField的字符串值。头文件(.h)如下所示:

@interface ComposerViewController : NSView 
@property (weak) IBOutlet NSTextField *motifName; 
@end

在实现(.m)文件中,我尝试设置" motifName"在drawRect中像这样:

- (void)drawRect:(NSRect)dirtyRect
{
[super drawRect:dirtyRect];
[self.motifName setStringValue:@"Bob"]:
}

或者在" mouseUp"像这样的方法:

- (void)mouseUp:(NSEvent *)theEvent
{
[self.motifName setStringValue:@"Bob"];
}

这些都不能改变我的NSTextField对象的显示值。

我确实有一个显示所需文本的IBAction,如下所示:

- (IBAction)add:(id)sender
{
[self.motifName setStringValue:@"Bob"];
}

我很困惑为什么" setStringValue"在IBAction方法中工作,但不是drawRect或mouseUp方法,即使它们都在同一个实现文件中。

非常感谢任何帮助。谢谢。

0 个答案:

没有答案