在objective-c中从mouseEntered设置标签标题

时间:2013-06-17 23:48:25

标签: objective-c xcode mouseover setstring

我的NSButton子类中包含此代码:

-(void)mouseEntered:(NSEvent *)theEvent{
    NSLog(@"ENTER");
    NSString *myString = @"foo";
    [myTextField setStringValue:myString];
}
-(IBAction)changeStringValue:(id)sender{
    NSString *myString = @"foo";
    [myTextField setStringValue:myString];
}

IBAction工作正常,但在myTextField内调用的mouseEntered event方法不起作用。该事件正在运行(setString除外),事实上我可以看到NSLog,如果我插入NSLog(@"%@", myTextField.stringValue);,它会显示null。 有没有人有线索?

编辑:我注意到前一个stringValue NSLog,如果插入-(void)awakeFromNib{...},即使只有一个MyButton类的按钮,也会出现2次:一次是正确的,另一次是null 1}}。我有点困惑。

Edit2:我在[self performSelectorOnMainThread:@selector(changeStringValue:) withObject:myTextField waitUntilDone:YES];事件中插入mouseEnter:并在changeStringValue函数中插入NSLog(@"Running");:现在悬停按钮我调用该函数(我看到“运行”日志)但没有任何反应。该功能作为分配给按钮的已发送操作仍在工作。我也试过了waitUntilDone:YES/NOwithObject:myTextField/self,但它是一样的。

0 个答案:

没有答案