我想检测 NSWindow 上的鼠标向下移动。事实上,我希望通过检测任何 NSWindow 标题栏上的点击来向整个系统添加功能。但是,我没有看到对 NSWindow 中标题栏或镶边等任何内容的访问。我想我可以监听任何点击并进行数学计算,以根据窗口的大小和位置检测点击是否在标题栏中,但我想知道是否有更好的方法。谢谢!
Apple 的 Java 中的 ApplicationListener 类已被弃用。还有什么选择呢?
包:com.apple.eawt
我想在OS X Lion(10.7)下为Apple的默认OS X邮件客户端开发一个自定义插件.我可以在线找到旧版Mail.app的很多插件,以及这些旧版Mail使用的(官方不支持和未记录的)插件架构的一些背景信息,但不是最新版本.
我知道Lion的邮件应用程序有插件,所以我知道可以这样做,但我很难找到如何开始.Xcode为Address Book,Quartz Composer和Installer插件提供模板,但不为Mail插件提供模板.
我特别不想专门使用AppleScripts,因为他们不允许我做我想做的事情:自定义应用程序的界面,视图和工具栏等.
我是一位经验丰富的Objective-C开发人员,并为iOS构建了多个应用程序,因此语言和Xcode不会产生任何问题.
我想我只需要知道1)在哪里/如何开始以及2)如何找到有关Mail.app的插件架构的可靠信息.有人能指出我的文档,示例项目或开发此类插件的教程的方向吗?当然,非常欢迎任何其他评论,提示和技巧.
提前致谢!
我有一个 AppleScript 脚本,用于通过 GeekTool 在我的桌面上显示 iTunes 曲目信息。我on runargv过去常常向脚本传递不同的参数,这样我就可以在不复制脚本的情况下显示曲目信息的不同部分(例如,我可以通过运行获得标题,我可以通过运行osascript itunes.scpt title获得艺术家/专辑osascript itunes.scpt album)。
然而,每次我用参数运行脚本时,实际的文件修改日期都会改变——似乎脚本正在向自己写入一些东西或进行某种修改。
这通常不是问题,除了在 OS X 10.7 中,Lion 为超过 2 周未修改的文件引入了文件锁定。一旦我的 iTunes 脚本被操作系统锁定,它在运行时就不能再进行这些不可见的自我更新,而且我的系统日志中充斥着这样的错误:
osascript: couldn't save changes to script /path/to/script: error -54
Run Code Online (Sandbox Code Playgroud)
我可以通过手动修改脚本来临时解决这个问题(例如,添加空行),但两周后它再次崩溃,因为 Lion 锁定了它。
理论上我可以在系统范围内禁用文件锁定来解决这个问题,但我宁愿不这样做——我喜欢它的其他用途。
那么,如何on run argv在不更改该脚本的修改日期的情况下将参数传递给 AppleScript 文件呢?
这是一个最小的工作示例。如果您从命令行 ( oscascript test.scpt blah)运行它,脚本的修改日期将会改变。
--test.scpt
on run argv
tell application "iTunes"
if player state is playing then
set trck to current track
set …Run Code Online (Sandbox Code Playgroud) 我已经尝试了几个月来为Python 3安装numpy但是尽管有大量的谷歌搜索,甚至发布到numpy邮件列表,我仍然没有接近解决方案.
我已经设法通过MacPorts安装它但不幸的是,似乎没有Python 3的MatPlotLib端口,这是我试图安装numpy的主要原因...所以我有点卡住...
尝试从setup.py文件构建时,我一直收到同样的错误.我在下面列出了终端输出.
谢谢你尽你所能的帮助,
亚当.
这是终端输出:
lipo: can't figure out the architecture type of: /var/folders/zj/7xymy_2n3s71ws30v3v_qnlw0000gn/T//ccbRr0Hj.out
failure.
removing: _configtest.c _configtest.o
Running from numpy source directory.Traceback (most recent call last):
File "setup.py", line 214, in <module>
setup_package()
File "setup.py", line 207, in setup_package
configuration=configuration )
File "/Users/adammcnicol/Downloads/numpy-1.6.2rc1/build/py3k/numpy/distutils/core.py", line 186, in setup
return old_setup(**new_attr)
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/distutils/core.py", line 148, in setup
dist.run_commands()
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/distutils/dist.py", line 917, in run_commands
self.run_command(cmd)
File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/distutils/dist.py", line 936, in run_command
cmd_obj.run()
File "/Users/adammcnicol/Downloads/numpy-1.6.2rc1/build/py3k/numpy/distutils/command/build.py", line 37, in run …Run Code Online (Sandbox Code Playgroud) 我在Screen/Tmux中使用Mysql的命令行客户端,来自OSX的Terminal.app中的Bash.当使用向上箭头重新显示以前运行的跨越多行的查询时,当光标位于终端的最后一行时,mysql命令历史记录中的命令被"截断"或截断.当我在Ubuntu工作站上使用相同的工具时,这种情况永远不会发生
以下是所发生情况的直观表示:
输入一些查询; 没错.
+-------------------------------------------+
|mysql> |
|mysql> |
|mysql> |
|mysql>select * from tables where legs = 4 a|
|nd colour = 'green'; |
+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
运行它,结果显示:
+-------------------------------------------+
|| 2 | ....... | ..... | |
|+---+---------+-------+ |
| x rows in set (0.00 sec) |
| |
|mysql> |
+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
按[向上箭头]重新显示上一个查询会让我:
+-------------------------------------------+
|| 2 | ....... | ..... | |
|+---+---------+-------+ |
| x rows in set (0.00 sec) |
| |
|nd colour = 'green'; |
+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
再次点击[向上箭头],我得到: …
所以我有一段代码在ubuntu机器上运行良好,但在xcode或终端上没有这样做.我正在尝试在xcode上运行它,但它在main上失败:
"使用未声明的标识符glewInit;你的意思是glutInit吗?" "函数调用的参数太少,预期2,有0"
代码冗长是由我的教授编写的,它运行在ubuntus上.但是由于这些错误,我认为原因是......好吧,明确的标识符,包括缺失.因此,在谷歌搜索之后我发现glewInit是glew库的一部分 - >所以我下载了代码并将其安装在我的机器上,其中包括:
make sudo -s make install
已成功安装到我的/ usr/include/GL中.现在,当我输入xcode #include或只是#include时,编译器抛出找不到glew.h(虽然我可以在usr/include/GL中看到自己的文件).
这是代码:
#include "include/Angel.h"
// The rotation around z axis
GLfloat Theta = 0.0; // Angle (in degrees)
GLfloat step = 0.01; // Incremental
GLuint locTheta;
enum { CW = 0, CCW = 1};
int direction = CW; // Direction
//Scale along x and y axes
GLfloat ScaleFactor[2] = {1.0, 1.0};
GLuint locScale;
const int NumPoints = 4;
void init();
void display( void );
void reshape( GLsizei …Run Code Online (Sandbox Code Playgroud) 我最近通过MacPorts在我的OS X 10.7系统上安装了GCC 4.7.3和GDB 7.6,以便能够编译C++ 11代码.我不能使用Apple的自制clang ++和gdb,因为它不允许我正确调试标准模板库代码(例如,如果我取消引用列表迭代器,程序崩溃).
现在,通过新的GCC/GDB组合,我在进入函数时遇到了一些奇怪的问题.拿这个最小的例子:
#include <stdio.h>
class A {
public:
virtual void testMethod() {
printf("test in A\n");
}
};
void test(A &a) {
printf("asdf\n");
a.testMethod(); // here, stepping works with -std=c++11
}
int main() {
A a;
a.testMethod();
test(a);
a.testMethod();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我编译代码g++ -O0 -ggdb test.cpp,GDB根本不会介入A::testMethod.我可以通过指定内部的代码行来设置断点A::testMethod,但不能通过指定方法名称(b A::testMethod())来设置断点.
更奇怪的是,如果我编译,如果g++ -O0 -ggdb -std=c++11 test.cpp从中调用,GDB会进入testMethod void test().从主要的,踩踏仍然不起作用.但是,现在,我可以通过仅指定方法名称来设置断点.
此外,一旦我在GDB中启动程序,我就会收到GDB警告,如相关问题中所述.无论是否指定,都会显示这些警告-std=c++11.
warning: Could not …Run Code Online (Sandbox Code Playgroud) 我的终端http://d.pr/1pE5的屏幕截图
我正在学习本教程:
http://blog.ghostinthemachines.com/2010/01/19/mac-os-x-fork-resource-temporarily-unavailable/
它告诉我按照我在屏幕截图中遵循的过程的地方:
[laptop:~ user]$ launchctl limit maxproc 512 1024
[laptop:~ user]$ launchctl limit maxfiles 512 unlimited
[laptop:~ user]$ launchctl limit
我正在尝试执行以下设置:
launchctl limit maxfiles 512无限制
我的系统(狮子)告诉我,我在做什么是错的,而且很傻,但它已经设置无限......所以我不知道发生了什么,或者为什么它会这样做.
我应该继续并给它一个特定的价值吗?
我使用基于视图NSOutlineView来显示和选择科学应用程序的分层结构项.

大纲列中的每一行代表一个项目,由项目特定图标表示(图片中全部相同),一个复选框,显示项目是否被选中,以及项目名称.我需要图标,复选框和名称出现在同一个单元格中,因此我使用的是基于视图的NSOutlineView.
我已经实现了NSOutlineViewDataSource协议来向大纲视图提供数据.
该方法outlineView:objectValueForTableColumn:byItem:提供具有属性BOOL selected和的自定义对象NSString *name.
我在IB中的自定义表单元格视图组成如下:

我将复选框值objectValue.selected和标签值绑定到objectValue.name.
正如我所希望的那样,大纲视图很好地显示了objectValue提供的名称和选择状态.
但是,如果我更改复选框的状态,则outlineView:setObjectValue:forTableColumn:byItem:在我的dataSource中不会触发NSOutlineViewDataSource协议中定义的方法以提供新更改的对象值.请注意,如果我不使用单元格的自定义视图,则此方法有效.
我通过在传递的对象objectValue.selected的setSelected方法中插入NSLog语句来检查单击复选框时是否实际更改了表格单元格视图objectValue.该selected成员正确更改状态.
如何将objectValue后面的更改传播到我的dataSource模型?我检查了NSOutlineView的委托方法,但找不到通过我的复选框发信号通知单元格视图的objectValue的方法(即单元格视图已"结束编辑").我还缺少其他一些基本观点吗?
osx-lion ×10
macos ×4
objective-c ×2
applescript ×1
c++ ×1
c++11 ×1
cocoa ×1
email ×1
gcc4.7 ×1
gdb ×1
gnu-screen ×1
install ×1
java ×1
macports ×1
matplotlib ×1
mysql ×1
nstableview ×1
nswindow ×1
numpy ×1
opengl ×1
plugins ×1
python-3.x ×1
readline ×1
tmux ×1