小编Shu*_*Haq的帖子

使用initWithImage:(UIImage*)图像将图像添加到UIBarButtonItem

我想知道如何将图像设置为UIBarButtonItem,然后在创建UIBarButtonItem时使用InitWithImage将其添加到UIToolbar.

我正在执行以下操作,但它会创建一个空白空白,其中图像应位于UIToolbar上

UIImage *image = [UIImage imageNamed:@"6.png"];

UIBarButtonItem *systemItem1 = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(pp:)];
Run Code Online (Sandbox Code Playgroud)

谢谢!

iphone uibarbuttonitem

58
推荐指数
5
解决办法
8万
查看次数

从Windows桌面获取所选文件的列表

我试图从Windows桌面和资源管理器Windows获取所选文件的列表.要求是我应该能够从活动资源管理器窗口或桌面检索当前选择.

在完成在线资源后,我设法将以下代码放在一起,但它没有提供桌面上所选项目的列表.

ArrayList selected = new ArrayList();
var shell = new Shell32.Shell();
IntPtr handle = IntPtr.Zero;
handle = GetForegroundWindow();
int intHandle = handle.ToInt32();

//For each explorer
foreach (InternetExplorer window in new ShellWindowsClass())
{

    if (window.HWND == (int)handle)
    {
        Shell32.FolderItems items = ((Shell32.IShellFolderViewDual2)window.Document).SelectedItems();
        foreach (Shell32.FolderItem item in items)
        {
            selected.Add(item.Path);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

除此之外,我尝试了以下内容,但它只是在所有打开的资源管理器窗口中提供所有选定元素的列表,而忽略了桌面.

string filename; = Path.GetFileNameWithoutExtension(window.FullName).ToLower();
if (filename.ToLowerInvariant() == "explorer")
{
    Shell32.FolderItems items = ((Shell32.IShellFolderViewDual2)window.Document).SelectedItems();
    foreach (Shell32.FolderItem item in items)
    {
        //MessageBox.Show(item.Path.ToString());
        selected.Add(item.Path);
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,我总是最终得到一个来自资源管理器窗口的列表,即使没有打开资源管理器窗口也没有结果.目前的技术似乎完全忽略了桌面.

如果有人可以帮助我从当前活动的窗口/桌面获取所选文件的列表,我将非常感激.

谢谢.

c# windows shell32 windows-shell visual-c++

8
推荐指数
1
解决办法
2558
查看次数

带有 NSExtensionActivationRule 自定义 SUBQUERY 的 iOS 共享扩展

我已经为 iOS 应用程序实现了一个共享扩展。该扩展程序可成功处理图像和视频。

现在我正在寻找一种方法来使扩展适用于更多文件类型,例如 PDF、电子表格(Excel、Pages 等)、文档(MS Word、其他类似类型)、演示文稿(Powerpoint、Pages 等) 、简单的文本文件(Txt、xml、.c、.h 等)和网页 URL。

问题是我希望能够使用以下规则激活扩展:

1. 图片和视频一共可以选择25个项目,最多25个图片和/或最多5个视频。所以我们可以只有 1-25 个图像或 1-5 个视频或 20 个图像和 5 个视频或任何组合,只要总项目数保持小于或等于 25 且视频保持小于或等于 5

2. 如果选择了Image/s 或Video/s,则不能选择其他类型。

3. PDF 最多 1 个,未选择其他类型。

4. 电子表格最多 5 个,未选择其他类型。

我一直试图通过对 NSExtensionActivationRule 使用自定义 SUBQUERY 来实现这一点,但一直无法弄清楚。

我浏览了许多堆栈溢出帖子,还有一些不是关于堆栈溢出的帖子,也通过 Apple 文档,除了简单的示例之外没有任何其他内容,但我还没有能够成功编写符合我要求的 SUBQUERY。

例如,我尝试编写以下 SUBQUERY,它应该仅在选择图像时激活扩展,并且专门忽略 PDF、演示文稿、音频、电影和文本文件。但是扩展被激活用于文本和 PDF,也可能用于其他被忽略的项目,尽管我没有专门检查每一个。

SUBQUERY (
            extensionItems,
            $extensionItem,
            SUBQUERY (
            $extensionItem.attachments,
            $attachment,
        (
                       ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image"
                    || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.fax"       
                    || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.jpeg"
                    || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.jpeg-2000"
                    || ANY …
Run Code Online (Sandbox Code Playgroud)

ios ios8-share-extension

5
推荐指数
0
解决办法
1338
查看次数

具有自定义 NSMenu/MenuItems 和拖放功能的 Mac OSX NSStatusItem

我正在尝试创建一个在状态栏中具有 NSStatusItem 图标的 Mac 应用程序。状态栏图标应支持文件拖放,并且在单击时还必须显示菜单。

问题是我已经设法分别实现了这两个功能,并且很难将它们合并在一起。

我能够使用此链接创建状态栏应用程序:

http://cocoatutorial.grapewave.com/2010/01/creating-a-status-bar-application/

然后我能够使用以下链接在状态栏图标上实现拖放功能

使用 NSStatusItem 拖放

我面临的问题如下,为了进行拖放,我必须创建另一个视图,然后将该视图分配给 NSStatusItem,如下所示:

NSStatusItem *statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];

ViewWithDragFunctionality* viewWithDrag = [[ViewWithDragFunctionality alloc] initWithFrame:NSMakeRect(0, 0, 24, 24)];
[statusItem.view addSubview:viewWithDrag];
Run Code Online (Sandbox Code Playgroud)

由于这只是一个视图,它显然不像 NSStatusItem 的默认视图那样运行,并且不支持鼠标交互或其他任何东西。通过向 ViewWithDragFunctionality.m 添加以下函数,我设法找到了解决方法

- (void)mouseDown:(NSEvent *)theEvent {
    NSLog(@"Status Bar Icon Clicked");
}
Run Code Online (Sandbox Code Playgroud)

只要单击状态栏图标并且还检测到文件拖放,就会调用该函数。

但是现在我被困在弄清楚如何在单击状态栏图标时显示菜单。

任何帮助都感激不尽。我正在为此寻找解决方案,如果我先找到一些东西,我会在这里发布:)

问候

舒迈斯

macos drag-and-drop nsmenu nsstatusitem nsmenuitem

3
推荐指数
1
解决办法
2265
查看次数