gpt4 book ai didi

objective-c - 将可编写脚本的属性添加到派生自 NSObject 的 Cocoa 应用程序?

转载 作者:行者123 更新时间:2023-12-03 17:58:31 24 4
gpt4 key购买 nike

有人可以给我举一个这个工作的例子吗?我只想通过 AppleScript 设置属性值。我已经浏览了所有可编写脚本的示例,它们的设置不同。

<?xml version="1.0" encoding="UTF-8"?>
<dictionary title="">
<suite name="Circle View Scripting" code="bccS" description="Commands and classes for Circle View Scripting">
<class name="application" code="capp" description="" >
<cocoa class="NSApplication"/>

<property name="circletext" code="crtx" type="text" description="The text that gets spun into a circle">
<cocoa key="circleText"/>
</property>
<property name="myint" code="crmy" type="integer" description="The text that gets spun into a circle">
<cocoa key="myInt"/>
</property>
</class>
</suite>

头文件:

// header 
@interface MyDelegate : NSObject <NSApplicationDelegate>
{
WebScriptObject *scriptObject;
WebView *webView;
NSWindow *window;
NSInteger myInt;
}

// implementation
- (BOOL)application:(NSApplication*)sender delegateHandlesKey:(NSString*)key
{
return key isEqualToString:@"myInt"] || [key isEqualToString:@"circleText"];;
}

-(NSInteger)myInt
{
NSInteger myInteger = 42;
return myInteger;
}

-(void)setMyInt:(NSInteger*)newVal
{
// do nothing right now
NSLog(@"SETTER CALLED");
}

//Applescript 尝试设置属性“myInt”

tell application "BrowserConfigClient"  
set myint to 7
properties
end tell

最终,调用 delegateHandlesKey 方法,我能够返回属性的值,但永远不会调用 setter。提前致谢...

最佳答案

您的方法语句有错误...

-(void)setMyInt:(NSInteger*)newVal

不应有“*”,因为 NSInteger 不是“指针”变量。我在您问题的评论中看到 Ken Thomases 已经告诉过您这一点,因此请务必修复它。

因此,如果这不是您的问题,请查看您的 sdef 文件。我可以看到你没有关闭字典标签。您需要将此作为该文件的最后一行。

</dictionary>

我也将其作为我的 sdef 文件中的第二行...

<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">

关于objective-c - 将可编写脚本的属性添加到派生自 NSObject <NSApplicationDelegate> 的 Cocoa 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com