[Q] No HexInputModePalette window?

  • Hello.

    I'm trying to write an Cocoa input method by following the
    HexInputServer sample.
    I found out that it couldn't display its accessory window,
    HexInputModePalette.
    However, its code seems to work OK. At least it is sucessful to
    hide/show the palette window.

    Can someone please tell me why the palette window is not displayed?

    Actually i found the same question like this from this mailing list.

    ROM : Matthew Cook
    DATE : Wed Dec 28 18:02:31 2005

    Greetings all,

    I have been working at writing an input server for about a week now,
    but I'm having some trouble working through the developer sample code.

    I am looking at the HexInputServer example (in Developer/Examples/
    AppKit).  I've worked over all of the code, and I think I understand
    what is going on, but I am having trouble with a palette window that
    the program is trying to open, which does not appear.

    The example has a nib file that contains this HexInputModePalette,
    which is a subclass of NSPanel.  The nib is set with another object
    as File's Owner in IB, and that object is manually loading the nub
    using loadNibNamed:owner:.  After the palette's nib is loaded, the
    Owner class displays the window with orderOut: and orderFront:.

    This all seems right to me, and I have added some NSLog messages to
    print the isVisible status and the windows position that report that
    the window should be visible.  However, it's not.  The logging
    messages report the following:

    HexInputServer[1263] window is up
    HexInputServer[1263] origin at x:676.000000 y:20.000000
    HexInputServer[1263] size of w:456.000000 h:374.000000

    I've tried this all using a completely clean version of the example
    code as well as my version that I had already done a bit of work on.
    Can anyone suggest what might be going wrong?

    -Matthew Cook
  • JongAm,

    We're phasing out support for NSInputServer and NSInputManager.
    We introduced a Cocoa-based framework for input method developers,
    InputMethodKit, in Leopard.
    The framework is the spiritual successor of NSInputServer API, it
    retains the same ease of development and provides much much more.

    We suggest to adopt the new framework for all new input method
    development on Mac OS X.

    Thank you,

    Aki

    On 2007/10/29, at 21:22, JongAm Park wrote:

    > Hello.
    >
    > I'm trying to write an Cocoa input method by following the
    > HexInputServer sample.
    > I found out that it couldn't display its accessory window,
    > HexInputModePalette.
    > However, its code seems to work OK. At least it is sucessful to hide/
    > show the palette window.
    >
    > Can someone please tell me why the palette window is not displayed?
    >
    > Actually i found the same question like this from this mailing list.
    >
    > ROM : Matthew Cook
    > DATE : Wed Dec 28 18:02:31 2005
    >
    > Greetings all,
    >
    > I have been working at writing an input server for about a week now,
    > but I'm having some trouble working through the developer sample code.
    >
    > I am looking at the HexInputServer example (in Developer/Examples/
    > AppKit).  I've worked over all of the code, and I think I understand
    > what is going on, but I am having trouble with a palette window that
    > the program is trying to open, which does not appear.
    >
    > The example has a nib file that contains this HexInputModePalette,
    > which is a subclass of NSPanel.  The nib is set with another object
    > as File's Owner in IB, and that object is manually loading the nub
    > using loadNibNamed:owner:.  After the palette's nib is loaded, the
    > Owner class displays the window with orderOut: and orderFront:.
    >
    > This all seems right to me, and I have added some NSLog messages to
    > print the isVisible status and the windows position that report that
    > the window should be visible.  However, it's not.  The logging
    > messages report the following:
    >
    > HexInputServer[1263] window is up
    > HexInputServer[1263] origin at x:676.000000 y:20.000000
    > HexInputServer[1263] size of w:456.000000 h:374.000000
    >
    > I've tried this all using a completely clean version of the example
    > code as well as my version that I had already done a bit of work on.
    > Can anyone suggest what might be going wrong?
    >
    > -Matthew Cook
  • Thank you for letting me know about the InputMethodKit.
    Actually, I have heard that Input Method will be prohibited in the
    Leopard from many site.
    However, their reports were too ambiguous to figure out what really
    happens : Will the plugins for SIMBL hack be disallowed, or will  the
    real input methods be disallowed?

    By the way, do you mean that the new InputMethodKit is also available to
    pre-10.5 version of the OS?
    If it is only available for the OS X above the Tiger, isn't it weird?

    There were Carbon TSM based input method, which were system-wide. So,
    the international setting showed input methods written for the Carbon
    TSM. Then, does the InputMethodKit replaces the Carbon TSM? Is the
    InputMethodKit Cocoa?

    Can you please explain those for me?

    Thank you.

    P.S. My ADC select membership was expired, and I'm not sure if I need to
    upgrade to the Leopard soon.
    Anyway I'm waiting Apple's ultra subnotebook which was rumored. Current
    notebooks are too heavy, so..
    If I'm going to buy a notebook from the Apple, yeah.. I will start using
    the Leopard...

    Aki Inoue wrote:
    > JongAm,
    >
    > We're phasing out support for NSInputServer and NSInputManager.
    > We introduced a Cocoa-based framework for input method developers,
    > InputMethodKit, in Leopard.
    > The framework is the spiritual successor of NSInputServer API, it
    > retains the same ease of development and provides much much more.
    >
    > We suggest to adopt the new framework for all new input method
    > development on Mac OS X.
    >
    > Thank you,
    >
    > Aki
    >
    > On 2007/10/29, at 21:22, JongAm Park wrote:
    >
    >> Hello.
    >>
    >> I'm trying to write an Cocoa input method by following the
    >> HexInputServer sample.
    >> I found out that it couldn't display its accessory window,
    >> HexInputModePalette.
    >> However, its code seems to work OK. At least it is sucessful to
    >> hide/show the palette window.
    >>
    >> Can someone please tell me why the palette window is not displayed?
    >>
    >> Actually i found the same question like this from this mailing list.
    >>
    >> ROM : Matthew Cook
    >> DATE : Wed Dec 28 18:02:31 2005
    >>
    >> Greetings all,
    >>
    >> I have been working at writing an input server for about a week now,
    >> but I'm having some trouble working through the developer sample code.
    >>
    >> I am looking at the HexInputServer example (in Developer/Examples/
    >> AppKit).  I've worked over all of the code, and I think I understand
    >> what is going on, but I am having trouble with a palette window that
    >> the program is trying to open, which does not appear.
    >>
    >> The example has a nib file that contains this HexInputModePalette,
    >> which is a subclass of NSPanel.  The nib is set with another object
    >> as File's Owner in IB, and that object is manually loading the nub
    >> using loadNibNamed:owner:.  After the palette's nib is loaded, the
    >> Owner class displays the window with orderOut: and orderFront:.
    >>
    >> This all seems right to me, and I have added some NSLog messages to
    >> print the isVisible status and the windows position that report that
    >> the window should be visible.  However, it's not.  The logging
    >> messages report the following:
    >>
    >> HexInputServer[1263] window is up
    >> HexInputServer[1263] origin at x:676.000000 y:20.000000
    >> HexInputServer[1263] size of w:456.000000 h:374.000000
    >>
    >> I've tried this all using a completely clean version of the example
    >> code as well as my version that I had already done a bit of work on.
    >> Can anyone suggest what might be going wrong?
    >>
    >> -Matthew Cook
    >
    >
  • I would like to remove this question from my previous post.

    >> Is the InputMethodKit Cocoa?

    :)

    Aki Inoue wrote:
    > JongAm,
    >
    > We're phasing out support for NSInputServer and NSInputManager.
    > We introduced a Cocoa-based framework for input method developers,
    > InputMethodKit, in Leopard.
    > The framework is the spiritual successor of NSInputServer API, it
    > retains the same ease of development and provides much much more.
    >
    > We suggest to adopt the new framework for all new input method
    > development on Mac OS X.
    >
    > Thank you,
    >
    > Aki
    >
    > On 2007/10/29, at 21:22, JongAm Park wrote:
    >
    >> Hello.
    >>
    >> I'm trying to write an Cocoa input method by following the
    >> HexInputServer sample.
    >> I found out that it couldn't display its accessory window,
    >> HexInputModePalette.
    >> However, its code seems to work OK. At least it is sucessful to
    >> hide/show the palette window.
    >>
    >> Can someone please tell me why the palette window is not displayed?
    >>
    >> Actually i found the same question like this from this mailing list.
    >>
    >> ROM : Matthew Cook
    >> DATE : Wed Dec 28 18:02:31 2005
    >>
    >> Greetings all,
    >>
    >> I have been working at writing an input server for about a week now,
    >> but I'm having some trouble working through the developer sample code.
    >>
    >> I am looking at the HexInputServer example (in Developer/Examples/
    >> AppKit).  I've worked over all of the code, and I think I understand
    >> what is going on, but I am having trouble with a palette window that
    >> the program is trying to open, which does not appear.
    >>
    >> The example has a nib file that contains this HexInputModePalette,
    >> which is a subclass of NSPanel.  The nib is set with another object
    >> as File's Owner in IB, and that object is manually loading the nub
    >> using loadNibNamed:owner:.  After the palette's nib is loaded, the
    >> Owner class displays the window with orderOut: and orderFront:.
    >>
    >> This all seems right to me, and I have added some NSLog messages to
    >> print the isVisible status and the windows position that report that
    >> the window should be visible.  However, it's not.  The logging
    >> messages report the following:
    >>
    >> HexInputServer[1263] window is up
    >> HexInputServer[1263] origin at x:676.000000 y:20.000000
    >> HexInputServer[1263] size of w:456.000000 h:374.000000
    >>
    >> I've tried this all using a completely clean version of the example
    >> code as well as my version that I had already done a bit of work on.
    >> Can anyone suggest what might be going wrong?
    >>
    >> -Matthew Cook
    >
    >
  • By the way, can you tell me where a document for the InputMethodKit is?
    I searched it at the developer.apple.com, but it doesn't give me any result.
    On google, Japanese-only information come up. (Google's automatic
    translation make it harder to understand.. )

    Thank you.

    Aki Inoue wrote:
    > JongAm,
    >
    > We're phasing out support for NSInputServer and NSInputManager.
    > We introduced a Cocoa-based framework for input method developers,
    > InputMethodKit, in Leopard.
    > The framework is the spiritual successor of NSInputServer API, it
    > retains the same ease of development and provides much much more.
    >
    > We suggest to adopt the new framework for all new input method
    > development on Mac OS X.
    >
    > Thank you,
    >
    > Aki
    >
    > On 2007/10/29, at 21:22, JongAm Park wrote:
    >
    >> Hello.
    >>
    >> I'm trying to write an Cocoa input method by following the
    >> HexInputServer sample.
    >> I found out that it couldn't display its accessory window,
    >> HexInputModePalette.
    >> However, its code seems to work OK. At least it is sucessful to
    >> hide/show the palette window.
    >>
    >> Can someone please tell me why the palette window is not displayed?
    >>
    >> Actually i found the same question like this from this mailing list.
    >>
    >> ROM : Matthew Cook
    >> DATE : Wed Dec 28 18:02:31 2005
    >>
    >> Greetings all,
    >>
    >> I have been working at writing an input server for about a week now,
    >> but I'm having some trouble working through the developer sample code.
    >>
    >> I am looking at the HexInputServer example (in Developer/Examples/
    >> AppKit).  I've worked over all of the code, and I think I understand
    >> what is going on, but I am having trouble with a palette window that
    >> the program is trying to open, which does not appear.
    >>
    >> The example has a nib file that contains this HexInputModePalette,
    >> which is a subclass of NSPanel.  The nib is set with another object
    >> as File's Owner in IB, and that object is manually loading the nub
    >> using loadNibNamed:owner:.  After the palette's nib is loaded, the
    >> Owner class displays the window with orderOut: and orderFront:.
    >>
    >> This all seems right to me, and I have added some NSLog messages to
    >> print the isVisible status and the windows position that report that
    >> the window should be visible.  However, it's not.  The logging
    >> messages report the following:
    >>
    >> HexInputServer[1263] window is up
    >> HexInputServer[1263] origin at x:676.000000 y:20.000000
    >> HexInputServer[1263] size of w:456.000000 h:374.000000
    >>
    >> I've tried this all using a completely clean version of the example
    >> code as well as my version that I had already done a bit of work on.
    >> Can anyone suggest what might be going wrong?
    >>
    >> -Matthew Cook
    >
    >
  • JongAm,

    > Thank you for letting me know about the InputMethodKit.
    > Actually, I have heard that Input Method will be prohibited in the
    > Leopard from many site.
    > However, their reports were too ambiguous to figure out what really
    > happens : Will the plugins for SIMBL hack be disallowed, or will
    > the real input methods be disallowed?
    OK, I agree there has been too many rumors and ambiguous reports
    floating around.
    Let me try to clarify a bit.

    From the beginning, Mac OS X has had two API sets for developing
    input methods, Carbon-based Text Services Manager and Cocoa-based
    NSInputServer.
    We decided to make the TSM API for input method developers on our
    platform and designed to make them work with both Carbon and Cocoa
    applications.
    We kept NSInputServer API for developers who wanted to have Cocoa's
    ease of development for simple text tools.

    Now, as most of you in this ML probably know, there are two
    configurations of input servers possible using the Cocoa API.
    One is the client server model configuration using Distributed Objects
    and another is plug-in configuration.
    HexInputServer example is based on the client server configuration,
    and, as you mentioned, some of the 3rd party tools are using the plug-
    in configuration.

    In spite of certain reports, we have been only documenting and
    supporting the DO-based configuration on Mac OS X.
    We decided not to publicize the plug-in model in order to minimize
    chances to repeat issues we had with Classic OS Extensions.

    In Leopard, we introduced InputMethodKit.  The framework provides API
    for input method developers moving forward.
    It's based on the client server design similar to NSInputServer and,
    thus, works with all clients regardless of various technologies they
    are using.  It works with Carbon and Cocoa clients, input methods
    don't have to care about 32bit vs 64bit, running in Rosetta or not, GC-
    enabled or not, etc, etc.

    In favor of IMKit, we're phasing out support for both TSM and
    NSInputServer based input methods gradually over upcoming releases.

    In Leopard, all existing TSM-based input methods are supported.
    The documented NSInputServer and NSInputManager API is still supported.
    Only significant change we had in terms of binary compatibility is
    that we tightened the conditions for plug-in NSInputServer.
    The specific can be referenced at <file:///Developer/Documentation/DocSets/com.apple.ADC_Reference_Library.CoreReference.docset/Contents/Resources/Documents/releasenotes/Cocoa/AppKit.html
    > .

    > By the way, do you mean that the new InputMethodKit is also
    > available to pre-10.5 version of the OS?
    > If it is only available for the OS X above the Tiger, isn't it weird?
    Our recommendation for input method developers is to use TSM API if
    Tiger compatibility is needed; otherwise, adopt InputMethodKit for all
    new development.

    Aki
previous month october 2007 next month
MTWTFSS
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
Go to today